CF 192 DIV.2
来源:互联网 发布:凯迪网络手机版 编辑:程序博客网 时间:2024/05/14 16:16
总结一下这场比赛,就是我太SB了。说多了都是泪。
A,大水题。
B,根据题意,可以肯定有一个城市是可以与所有城市相连的,直接找到该点然后输出该点与其他所有点相连即可。
int x[111111] , y[111111] ,num ;bool vis[111111] ;int aa[111111] ,nn = 0 ;void antry(){ num = 0 ; int n , m ; cin >> n >> m ; mem(vis,0) ; for (int i = 0 ;i < m ;i ++ ){ int a , b ; cin >> a >> b ; vis[a] = 1 ; vis[b] = 1 ; } int pos ; for (int i = 1 ;i <= n ;i ++ ){ if(!vis[i]){ pos = i ; break ; } } cout << n - 1 << endl; for (int i = 1 ;i <= n ;i ++ ){ if(i == pos)continue ; cout << pos <<" " << i << endl; }}int main() { antry() ; return 0 ;}
C,先说-1的情况,当点[x , y ]行x 与列y 都是E的时候,那么就是-1。
然后只要判断 每一行 ,是否没满 ,或者每一列是否没满 。
如果每一行都没满 ,那么每一行都输出一个点,如果每一列都没满,那么每一列都找一个点输出。
char Map[1111][1111] ;int hang[1111] ;int lie[1111] ;int main() { int n ; cin >> n ; for (int i = 1 ; i <= n ;i ++ ){ for (int j = 1 ;j <= n ;j ++ ){ cin >> Map[i][j] ; if(Map[i][j] == 'E'){ hang[i] ++ ; lie[j] ++ ; } } } int flag = 0 ; for (int i = 1 ;i <= n ;i ++ ){ for (int j = 1 ;j <= n ;j ++ ){ if(hang[i] == n && lie[j] == n){ flag = 1 ; } } } if(flag)cout << -1 << endl; else { int num1 = 0 ; int num2 = 0 ; for (int i = 1 ;i <= n ;i ++ ){ if(hang[i] != n)num1 ++ ; if(lie[i] != n)num2 ++ ; } if(num1 == n){ for (int i = 1 ;i <= n ;i ++ ) { bool ff = 0 ; for (int j = 1 ;j <= n ;j ++ ){ if(Map[i][j] == '.'){ cout << i << " " << j << endl; ff = 1 ; } if(ff)break ; } } } else if(num2 == n){ for (int i = 1 ;i <= n ;i ++ ){ int ff = 0 ; for (int j = 1 ;j <= n ;j ++ ){ if(Map[j][i] == '.'){ cout << j << " " <<i << endl; ff = 1 ; } if(ff)break ; } } } } return 0;}
D,大水题,直接从E开始BFS,找出所有点的距离,然后判断是否比S 到E的时间小,加起来即可。
#include <iostream>#include <cstdio>#include <algorithm>#include <string>#include <cmath>#include <cstring>#include <queue>#include <set>#include <vector>#include <stack>#include <map>#include <iomanip>#define PI acos(-1.0)#define Max 2505#define inf 1<<28#define LL(x) ( x << 1 )#define RR(x) ( x << 1 | 1 )#define REP(i,s,t) for( int i = ( s ) ; i <= ( t ) ; ++ i )#define ll long long#define mem(a,b) memset(a,b,sizeof(a))#define mp(a,b) make_pair(a,b)#define PII pair<int,int>using namespace std;inline void RD(int &ret) { char c; do { c = getchar(); } while(c < '0' || c > '9') ; ret = c - '0'; while((c=getchar()) >= '0' && c <= '9') ret = ret * 10 + ( c - '0' );}char Map[1111][1111] ;PII st[11111111] ;int sx ,sy ;int ex ,ey ;int vis[1005][1005] ;int n , m ;int num[1005][1005] ;queue<PII > qe ;int mx[4] = {0 , 0 ,-1, 1} ;int my[4] = {1, -1, 0 ,0 } ;int inmap(int x ,int y){ if(x >= 1 && x <= n && y >= 1 && y <= m)return 1 ; return 0 ;}int dbfs(){ PII s , e ; mem(vis,0) ; mem(num , 0) ; e.first = ex ; e.second = ey ; while(!qe.empty())qe.pop() ; qe.push(e) ; num[ex][ey] = 0 ; vis[ex][ey] = 1 ; while(!qe.empty()){ PII tmp = qe.front() ; qe.pop() ; for (int i = 0 ;i < 4 ;i ++ ){ int tx = tmp.first + mx[i] ; int ty = tmp.second + my[i] ; if(inmap(tx, ty) && Map[tx][ty] != 'T'){ if(!vis[tx][ty]){ vis[tx][ty] = 1 ; num[tx][ty] = num[tmp.first][tmp.second] + 1 ; qe.push(mp(tx,ty)) ; } } } } return inf ;}void antry(){ cin >> n >> m ; int num1 = 0 ; for (int i = 1 ;i <= n ; i ++ ){ for (int j = 1 ;j <= m ; j ++ ){ cin >> Map[i][j] ; if(Map[i][j] >= '1' && Map[i][j] <= '9'){ st[num1].first = i ; st[num1].second = j ; num1 ++ ; } else if(Map[i][j] == 'S'){ sx = i ; sy = j ; } else if(Map[i][j] == 'E'){ ex = i ; ey = j ; } } } dbfs() ; int ans = 0 ; int s1 = num[sx][sy] ; for (int i = 0 ;i < num1 ; i ++ ){ int s2 = num[st[i].first][st[i].second] ; if(s2 <= s1 && s2 != 0){ ans += Map[st[i].first][st[i].second] - '0' ; } } cout << ans << endl;}int main() { antry() ; return 0 ;}
E,在搞。
- CF 192 DIV.2
- Cf 99 Div.2
- Cf 103 div.2
- Cf 104 div.2
- Cf 102 Div.2
- Cf 101 Div.2
- Cf 105 Div.2
- Cf 98 Div.2
- Cf 97 Div.2
- Cf 95 Div.2
- CF #151 div 2
- cf-#189-div 2
- CF#262 (Div. 2)
- cf. #304 div.2
- CF #308 (Div. 2)
- CF #310 (Div. 2)
- CF #309 (Div. 2)
- CF #324 (Div. 2)
- MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别
- OpenCV命名规则
- Simplify Path
- Linux下用g++编译c程序
- UVA11324_The Largest Clique_tarjan求强连通分量+DP求最长路
- CF 192 DIV.2
- POJ题目分类
- J2EE基于MVC的各层的设计原则及其编写注意事项
- ETL的过程原理和数据仓库建设
- 130720CF解题报告
- 判断顶点是否位于三角形内
- ZK grid or list数据多列排序
- UVAlive 5864 Register Allocation 题解
- OpenCV 编码样式指南