Codeforces Round #192 (Div. 2)
吐槽一下,这次的CF好简单啊。 可是我为什么这么粗心这么大意这么弱。把心沉下来,想想你到底想做什么!
A
题意:O(-1)
思路:O(-1)
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std; int main()
{
string s[];
int mp[][];
int n, m;
while(cin >> n >> m)
{
memset(mp,,sizeof(mp));
for(int i=; i<n; i++)
cin >> s[i];
for(int i=; i<n; i++)
{
int cnt=;
for(int j=; j<m; j++)
if(s[i][j]!='S') cnt++;
if(cnt==m)
{
for(int j=; j<m; j++) mp[i][j]=;
}
}
for(int i=; i<m; i++)
{
int cnt=;
for(int j=; j<n; j++)
if(s[j][i]!='S') cnt++;
if(cnt==n)
{
for(int j=; j<n; j++) mp[j][i]=;
}
}
int sum=;
for(int i=; i<n; i++)
for(int j=; j<m; j++)
if(mp[i][j]) sum++;
cout << sum <<endl;
}
}
B
题意:有n个城市,然后给定m对城市不可建路,一个城市到另一个城市最多经过两条路,问你如何建路。
思路:两个城市之间的距离最多为2说明一条线上最多三个点,且有一点必须再所有三个点的中心。找出一个没有在不可连接的城市的点(因为0<M<N/2).
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <map>
using namespace std; const int maxn=;
int que[*maxn]; int main()
{
int n, m;
while(cin >> n >> m)
{
map<int,int>mp;
int num=;
for(int i=; i<m; i++)
{
int u, v;
cin >>u >> v;
mp[u]=;
mp[v]=;
}
int tp;
for(int i=; i<=n; i++)
if(!mp[i]) tp=i;
cout << n- <<endl;
for(int i=; i<=n; i++)
{
if(i!=tp) cout << i << " " << tp <<endl;
}
}
return ;
}
C
题意:O(-1)
思路:开始想复杂了,想成n皇后问题。其实这题想想也就很水的一题,对每行分析,每行能找出一个空点就是可行解,如果有一行找不到,就对每列找,每列能找到一个空点就是可行解。很水的一题,开始写成了N皇后问题,然后再源代码上改的,最后挂了,悲剧,为什么就懒这一些重新写两个for循环不就好了么,下次不能偷懒了。
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std; const int maxn=;
int a[maxn][maxn], b[maxn]
string s[]; int main()
{
int n;
while(cin >> n)
{
for(int i=; i<n; i++) cin >> s[i];
int top=, flag=;
for(int i=; i<n; i++)
for(int j=; j<n; j++)
if(s[i][j]=='.')
{
top++;
break;
}
if(top==n)
{
flag=;
for(int i=; i<n; i++)
for(int j=; j<n; j++)
if(s[i][j]=='.')
{
cout << i+ << " " << j+ <<endl;
break;
}
}
top=;
for(int j=; j<n; j++)
for(int i=; i<n; i++)
if(s[i][j]=='.')
{
top++;
break;
}
if(top==n&&!flag)
{
flag=;
for(int j=; j<n; j++)
for(int i=; i<n; i++)
if(s[i][j]=='.')
{
cout << i+ << " " << j+ <<endl;
break;
}
}
if(!flag) puts("-1");
}
return ;
}
/*
3
EEE
...
...
*/
D:
题意:屌丝从起点S出发去终点E找女神,途中可能会遇见情敌,问屌丝最少能遇见几个情敌。
思路:开始看错了题,以为题目要求最少要遇见一个情敌,然后用了两次广搜,起点和终点分别搜一次。题目木有这么要求啊啊啊啊啊啊啊 O.O O.O O.O。
下次能再给我大意一点么!这题不用想得太复杂,不管这么走,屌丝和情敌都往女神那里走,情敌先到女神那里就一定能遇见屌丝然后干一架,从终点广搜一次就够了。
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std; const int maxn=;
char map[][];
long long a[maxn][maxn],visit[maxn][maxn];
int n, m, si, sj, di, dj;
int dir[][]= {,,,-,,,-,}; struct node
{
int x, y;
long long time;
} f[maxn*maxn]; void bfs(int st, int sd)
{
queue<node>q;
memset(visit,,sizeof(visit));
node s, p;
s.x=st, s.y=sd, s.time=;
q.push(s);
while(!q.empty())
{
p=q.front();
q.pop();
for(int i=; i<; i++)
{
s.x=p.x+dir[i][];
s.y=p.y+dir[i][];
s.time=p.time+;
if(<=s.x&&s.x<=n&&<=s.y&&s.y<=m&&map[s.x][s.y]!='T'&&!visit[s.x][s.y])
{
visit[s.x][s.y]=;
a[s.x][s.y]=s.time;
q.push(s);
}
}
}
} int main()
{
while(cin >> n >> m)
{
int num=;
for(int i=; i<=n; i++)
{
scanf("%s",map[i]+);
for(int j=; j<=m; j++)
{
if(map[i][j]=='S') si=i, sj=j;
else if(map[i][j]=='E') di=i, dj=j;
else if(''<map[i][j]&&map[i][j]<='')
{
f[num].x=i;
f[num].y=j;
num++;
}
}
}
memset(a,,sizeof(a));
bfs(di,dj);
long long sum=;
for(int i=; i<num; i++)
{
int x=f[i].x, y=f[i].y;
if(a[x][y]<=a[si][sj]&&a[x][y]) sum+=map[x][y]-'';
}
cout << sum <<endl;
}
return ;
}
E:
不会。
Codeforces Round #192 (Div. 2)的更多相关文章
- Codeforces Round #192 (Div. 1) C. Graph Reconstruction 随机化
C. Graph Reconstruction Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/3 ...
- Codeforces Round #192 (Div. 1) B. Biridian Forest 暴力bfs
B. Biridian Forest Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/329/pr ...
- Codeforces Round #192 (Div. 1) A. Purification 贪心
A. Purification Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/329/probl ...
- [Codeforces Round #192 (Div. 2)] D. Biridian Forest
D. Biridian Forest time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Codeforces Round #192 (Div. 2) (330B) B.Road Construction
题意: 要在N个城市之间修建道路,使得任意两个城市都可以到达,而且不超过两条路,还有,有些城市之间是不能修建道路的. 思路: 要将N个城市全部相连,刚开始以为是最小生成树的问题,其实就是一道简单的题目 ...
- Codeforces Round #192 (Div. 2) (330A) A. Cakeminator
题意: 如果某一行没有草莓,就可以吃掉这一行,某一列没有也可以吃点这一列,求最多会被吃掉多少块蛋糕. //cf 192 div2 #include <stdio.h> #include & ...
- Codeforces Round #192 (Div. 2) A. Cakeminator
#include <iostream> #include <vector> using namespace std; int main(){ int r,c; cin > ...
- Codeforces Round #192 (Div. 2) B. Road Construction
#include <iostream> #include <vector> using namespace std; int main(){ int n,m; cin > ...
- Codeforces Round #192 (Div. 2) (329A)C.Purification
题意: 在一个正常的点可以净化该行该列的所有细胞,判断是否可以净化所有的细胞,并且输出所选的点. 思路: 如果可以的话,一定会选n个点. 先判断每一行是否有正常细胞,然后判断每一列是否有,如果都没有肯 ...
随机推荐
- 通过jquery.transit.min.js插件,实现图片的移动
首先给出插件:jquery.transit.min.js (function(t,e){if(typeof define==="function"&&define. ...
- 利用scp传输文件小结
从本地复制到远程 scp mysql-5.5.29-linux2.6-x86_64.tar.gz 192.168.1.11:/opt 指定端口: scp -P 60022 /opt/ray/nginx ...
- 端口偷窃(Port Stealing)技术
端口偷窃(Port Stealing)技术 该技术主要用于局域网中间人攻击中,尤其目标计算机采用静态ARP后,导致ARP欺骗无效. 背景知识:路由器为了方便转发数据包,会在内部记录每个接口和M ...
- PHP 不使用第三个变量实现交换两个变量的值
//字符串版本 结合使用substr,strlen两个方法实现$a="a";$b="b";echo '交换前 $a:'.$a.',$b:'.$b.'<br ...
- AC自动机 LA 4670 Dominating Patterns
题目传送门 题意:训练指南P216 分析:求出现最多次数的字串,那么对每个字串映射id,cnt记录次数求最大就可以了. #include <bits/stdc++.h> using nam ...
- js/jQuery判断浏览器名称、内核版本、浏览器壳
1.js方法 /* 判断浏览器名称和版本 目前只能判断:ie/firefox/chrome/opera/safari 2012年5月16日23:47:08 浏览器内核UA:UA; 浏览器内核名称:NV ...
- Android 摇一摇 之 震动片
声明:import android.os.Vibrator; Vibrator mVibrator; 取得震动服务的句柄: mVibrator = (Vibrator)getApplication() ...
- HttpLuaModule 获取Get和Post参数
Get方式: local id = tostring(ngx.var.arg_id) local type = tostring(ngx.var.arg_type) Post方式: ngx.req.r ...
- ACM: Gym 100935B Weird Cryptography - 简单的字符串处理
Weird Cryptography Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u ...
- NOIp 2014 #5 解方程 Label:数论?
题目描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, m ] 内的整数解(n 和m 均为正整数) 输入输出格式 输入格式: 输入文件名为equation .i ...