CF 192 Div2
2013-07-22 14:14
393 查看
A.Cakeminator
暴搞之,从没有草莓覆盖的行、列遍历
char map[30][30];
int vis[30][30];
int hang[30],lie[30];
int main() {
int n,m,i,j;
cin >> n >> m;
for(i=1; i<=n; i++) {
for(j=1; j<=m; j++) {
cin >> map[i][j];
if(map[i][j] == 'S') {
hang[i] = 1;
lie[j] = 1;
}
}
}
for(i=1; i<=n; i++) {
if(hang[i] == 0) {
for(j=1; j<=m; j++) {
vis[i][j] = 1;
}
}
}
for(i=1; i<=m; i++) {
if(lie[i] == 0) {
for(j=1; j<=n; j++) {
vis[j][i] = 1;
}
}
}
int cnt = 0;
for(i=1; i<=n; i++) {
for(j=1; j<=m; j++) {
if(vis[i][j] == 1)
cnt++;
}
}
cout << cnt << endl;
return 0;
}
B.Road Construction
从一个点到达其他点的距离小于等于2,那只有以一个点为中心,其它点只与它连接的建图了
m < n/2 所有一定至少有一个点能做中心点
int vis[1005];
int main() {
int n,m,i,j,a,b;
cin >> n >> m;
for(i=1; i<=m; i++) {
cin >> a >> b;
vis[a] = 1;
vis[b] = 1;
}
int t;
for(i=1; i<=n; i++) {
if(vis[i] == 0){
t = i;
break;
}
}
cout << n-1 << endl;
for(i=1; i<=n; i++) {
if(i != t) cout << i << ' ' << t << endl;
}
return 0;
}
C.Purification
搞了很久,开始想太复杂了。寻找是否所有行或者所有列能被‘.’覆盖,只要一条满足,就可以直接输出了
char map[105][105];
int x[105],y[105];
int main() {
int n,i,j;
cin >> n;
for(i=0; i<n; i++) {
cin >> map[i];
}
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
if(map[i][j] == '.') {
x[i] = 1;
y[j] = 1;
}
}
}
int cntx = 0,cnty = 0;
for(i=0; i<n; i++) {
if(x[i] != 0) {
cntx++;
}
if(y[i] != 0) {
cnty++;
}
}
if(cnty <n && cntx <n) {
cout << -1 << endl;
return 0;
}
int flag = 0;
if(cntx == n) {
flag = 1;
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
if(map[i][j] == '.') {
cout << i+1 << ' ' << j+1 << endl;
break;
}
}
}
}
if(flag == 1)
return 0;
if(cnty == n) {
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
if(map[j][i] == '.') {
cout << j+1 << ' ' << i+1 << endl;
break;
}
}
}
}
return 0;
}
只过三道题,D,E没看 。
赛后据说D是很水的bfs,所以没写。
暴搞之,从没有草莓覆盖的行、列遍历
char map[30][30];
int vis[30][30];
int hang[30],lie[30];
int main() {
int n,m,i,j;
cin >> n >> m;
for(i=1; i<=n; i++) {
for(j=1; j<=m; j++) {
cin >> map[i][j];
if(map[i][j] == 'S') {
hang[i] = 1;
lie[j] = 1;
}
}
}
for(i=1; i<=n; i++) {
if(hang[i] == 0) {
for(j=1; j<=m; j++) {
vis[i][j] = 1;
}
}
}
for(i=1; i<=m; i++) {
if(lie[i] == 0) {
for(j=1; j<=n; j++) {
vis[j][i] = 1;
}
}
}
int cnt = 0;
for(i=1; i<=n; i++) {
for(j=1; j<=m; j++) {
if(vis[i][j] == 1)
cnt++;
}
}
cout << cnt << endl;
return 0;
}
B.Road Construction
从一个点到达其他点的距离小于等于2,那只有以一个点为中心,其它点只与它连接的建图了
m < n/2 所有一定至少有一个点能做中心点
int vis[1005];
int main() {
int n,m,i,j,a,b;
cin >> n >> m;
for(i=1; i<=m; i++) {
cin >> a >> b;
vis[a] = 1;
vis[b] = 1;
}
int t;
for(i=1; i<=n; i++) {
if(vis[i] == 0){
t = i;
break;
}
}
cout << n-1 << endl;
for(i=1; i<=n; i++) {
if(i != t) cout << i << ' ' << t << endl;
}
return 0;
}
C.Purification
搞了很久,开始想太复杂了。寻找是否所有行或者所有列能被‘.’覆盖,只要一条满足,就可以直接输出了
char map[105][105];
int x[105],y[105];
int main() {
int n,i,j;
cin >> n;
for(i=0; i<n; i++) {
cin >> map[i];
}
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
if(map[i][j] == '.') {
x[i] = 1;
y[j] = 1;
}
}
}
int cntx = 0,cnty = 0;
for(i=0; i<n; i++) {
if(x[i] != 0) {
cntx++;
}
if(y[i] != 0) {
cnty++;
}
}
if(cnty <n && cntx <n) {
cout << -1 << endl;
return 0;
}
int flag = 0;
if(cntx == n) {
flag = 1;
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
if(map[i][j] == '.') {
cout << i+1 << ' ' << j+1 << endl;
break;
}
}
}
}
if(flag == 1)
return 0;
if(cnty == n) {
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
if(map[j][i] == '.') {
cout << j+1 << ' ' << i+1 << endl;
break;
}
}
}
}
return 0;
}
只过三道题,D,E没看 。
赛后据说D是很水的bfs,所以没写。
相关文章推荐
- CF 301 B School Marks
- cf-538B Quasi Binary【贪心】
- 【概率DP】 CF 148D Bag of mice
- IOS解析json报错-[__NSCFString objectFromJSONString]: unrecognized selector sent to 解决办法
- CF 304B——Calendar——————【年月日计算】
- CF 550E Brackets in Implications
- cf 543A 完全背包
- CF E. Vanya and Brackets(添加一对括号使得表达式的值最大)
- CF 10A Power Consumption Calculation
- CF 557B(Pasha and Tea-贪心)
- cf 251 B Playing with Permutations 暴力 分类讨论
- [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现
- 【CF】【312div2】【A Simple Task】
- 【CF】110 Div.1 B. Suspects
- IOS上的socket通信 CFsocket
- CF_288B_PoloThePenguinAndHouses
- CF 439D Devu and his Brother
- cf 567 C. Geometric Progression
- DZY Loves Chemistry 分类: CF 比赛 图论 2015-08-08 15:51 3人阅读 评论(0) 收藏
- CF-Guess Your Way Out!