A. Cakeminator

题目链接

大水题,前提是要看懂题目

思路:记录一行都不存在草莓的行数s1,一列都不存在草莓的列数s2,然后求总格数,公式:s=s1*m+s2*n-s1*s2

代码:

#include <stdio.h>//192 div.2 A
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
using  namespace std;
const int M=100010;
char a[15][15];
int vis[15][15];
int num;
int main()
{int n,m,i,j;memset(vis,0,sizeof(vis));scanf("%d%d",&n,&m);for(i=0;i<n;i++)scanf("%s",a[i]);int s=0;int s1=0,s2=0;for(i=0;i<n;i++){for(j=0;j<m;j++){if(a[i][j]=='S')break;}if(j==m){s+=m;s1++;}}for(i=0;i<m;i++){for(j=0;j<n;j++){if(a[j][i]=='S')break;}if(j==n){s+=n;s2++;}}s-=(s1*s2);printf("%d\n",s);return 0;
}

B. Road Construction

也很水呀,没看清题目,竟然想得复杂了~

注意两点:1.任意两点之间的长度不超过2  ,2.不能相连的边数m<n/2........赤裸裸的直接找空点,把其他点都连在那个点上

如果没有第一个条件有第二个条件,也可以证明存在这样一个点能和其他所有点相连

证明:一个无向图的的联通图最多共有(n-1)*n/2条边,而m<2/n; 由于n*(n-1)/2-(n/2)=(n/2)(n-1)>=n-1,而n个点相连至少需要n-1条边,非常满足。。。。。唉~仔细推想就不会觉得难了

代码:

#include <stdio.h>//192 div.2 B
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector>
using  namespace std;
const int M=100010;
vector<int>p[M];
int vis[1001];
int f[1001][1001];
int s[1001];
int main()
{memset(f,0,sizeof(f));int n,m,i,a,b,j;cin>>n>>m;while(m--){cin>>a>>b;f[a][b]=1;f[b][a]=1;}int si=1;// int gg=0;for(i=1; i<=n; i++){int gg=0;for(j=1; j<=n; j++){if(f[i][j]==1){gg=1;break;}}if(gg==0){si=i;break;}}cout<<n-1<<endl;for(i=1; i<=n; i++){if(si!=i)cout<<si<<" "<<i<<endl;}return 0;
}

C. Purification

还是YY题呀,仔细想也是一水题

题意:放最少的炸弹把所有格子都炸掉,但放炸弹不能放在僵尸所在位置,求最少所需放炸弹的位置,不能全炸掉输出-1(当放一个炸弹就能把所在的行和列的所有格子炸掉)

思路:由题意可知,若要炸掉一个个点a(x,y),那么被炸掉的条件必须是要么是a所在的行至少有一个炸弹,要么是a所在的列至少有一个炸弹,否则不能炸掉。那么就可以推出,一个n*n的格子,要全部被炸掉,必须是要么所有的行都至少有一个炸弹,要么是所有的列至少有一个炸弹,所以放炸弹的位置至少是n....那么求最少也就是n个位置。。。

那么就很简单了

代码:

#include <stdio.h>//192 div.2 C
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector>
using  namespace std;
const int M=100010;
char a[101][101];
int b[100002];
int vis[101][101];
int n;
int main()
{int i,j;memset(vis,0,sizeof(vis));scanf("%d",&n);for(i=1; i<=n; i++){getchar();for(j=1; j<=n; j++)scanf("%c",&a[i][j]);}int l=0,k=0;for(i=1; i<=n; i++){for(j=1; j<=n; j++){if(a[i][j]=='.'){b[l++]=i;b[l++]=j;k++;break;}}}if(k==n){for(int g=0; g<l; g+=2)cout<<b[g]<<" "<<b[g+1]<<endl;;}else{k=0,l=0;for(i=1; i<=n; i++){for(j=1; j<=n; j++){if(a[j][i]=='.'){b[l++]=j;b[l++]=i;k++;break;}}}if(k==n){for(int g=0; g<l; g+=2)cout<<b[g]<<" "<<b[g+1]<<endl;}elsecout<<"-1"<<endl;}return 0;
}

D. Biridian Forest

稍微认真思考,就发现是一道简单的BFS搜索题,不过需要仔细推敲

题意:一个人从森林起点走到森林出口,期间不能走有树的地方,期间还会和别的生物打斗,和一只生物打算一场打斗,问从S-E这期间至少打斗几次

思路:把问题转化为人用最少的时间走到E点才能避免更多的打斗,因为与别人相遇的次数减少了,也就是求最短路径。。等等,那怎么求呢?  想象一下若这个人走的期间在某个格子和其他“人”打斗,所以那么从这个格子到E出口是需要一样时间的,我们可以把打斗的位置移到E出口位置,也就是想象成所有的打斗都在E出口位置进行,从而可以知道,若其他生物从它的位置到E出口的距离要小于等于人从S到E点的距离,生物才有可能在人到来之前等在E出口旁和人进行打斗!!!。。。

之前就想着所有生物到E出口的距离得要进行多少次BFS呀!后面换一个角度,从E到所有生物的距离!!!求吧,一次BFS就行

思路出来了,写代码就简单了

代码:

#include <stdio.h>//192 div.2 D
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector>
#include <queue>
using  namespace std;
char a[1001][1001];
int step[1001][1001];
int dix[4]= {0,1,0,-1};
int diy[4]= {1,0,-1,0};
int n,m;
int ex,ey,sx,sy;
struct node
{int x,y;
} g[1001];
void bfs()
{queue<node>q;node cur,next;cur.x=ex;cur.y=ey;step[ex][ey]=0;q.push(cur);while(!q.empty()){cur=q.front();q.pop();for(int i=0; i<4; i++){next.x=cur.x+dix[i];next.y=cur.y+diy[i];if(next.x >=0 && next.x < n && next.y >= 0 && next.y < m){if(a[next.x][next.y]!='T' && step[next.x][next.y]==-1){step[next.x][next.y]=step[cur.x][cur.y]+1;q.push(next);}}}}
}
int main()
{memset(step,-1,sizeof(step));int i,j,s=0;scanf("%d%d",&n,&m);getchar();for(i=0; i<n; i++){scanf("%s",a[i]);}for(i=0; i<n; i++){for(j=0; j<m; j++)if(a[i][j]=='S'){sx=i;sy=j;i=n;j=m;}}for(i=0; i<n; i++){for(j=0; j<m; j++){if(a[i][j]=='E'){ex=i;ey=j;i=n;j=m;}}}bfs();int mmax=step[sx][sy];for(i=0; i<n; i++){for(j=0; j<m; j++){if(a[i][j]>='1'&& a[i][j]<='9'){if(step[i][j]!=-1 && step[i][j]<=mmax){s+=(a[i][j]-'0');}}}}cout<<s<<endl;return 0;
}
代码

CF 192 DIV2相关推荐

  1. CF 400 div2

    从昨天周赛开始,要耍CF了~ 开始还害怕个人赛自己数论压根不会怎么办,发现CF全是乱搞的题orz 但是就算是乱搞的也不能1A  T^T 犯的错误基本上都是没有把情况归类导致要么是情况想少了,要么是细节 ...

  2. CF #673 div2 赛后总结

    文章目录 前言 A B C D E F 前言 完成成就:在学校熬夜熬到1点 第一次CF打比赛就炸成这个样子 A 题目翻译: 一个长度为 n n n的数组,每次选择 i , j ( 1 ≤ i , j ...

  3. 【CF#192 A】Funky Numbers (二分,查找,二元组)

    题干: As you very well know, this year's funkiest numbers are so called triangular numbers (that is, i ...

  4. 【CF#468 div2 D. 】Peculiar apple-tree(思维)

    题干: In Arcady's garden there grows a peculiar apple-tree that fruits one time per year. Its peculiar ...

  5. cf#644 div2 B. Boboniu Plays Chess

    惯例,粘个生草翻译 这题比第一题还简单(简单多了 ) 虽然题面不短,但仔细读就会发现条件不多 刚开始我误以为是一笔画的题,但题中的棋子不同,他是車 ,棋子可以直接跳过一个点,也就是上下左右随便走,那就 ...

  6. CF 868 div2 A—C

    A 题就是一个预处理然后进行枚举 首先数据范围不是很大 然后我们依照题意看看如何构造出对应的要求,也就是说我们需要在不同的下标下使得 ai*aj=1 那么只有1 1 或者-1 -1 那么这个不管是1 ...

  7. 【CF #781 Div2】A-C

    A. GCD vs LCM 题目 分析 给一个数n,使满足条件: a+b+c+d=n,ab的最大公因数为,cd的最小公倍数. b,c,d值都为1,最大公因数及最小公倍数都为1,a=n-3 代码 #in ...

  8. 【CF #777 div2】A-C

    A. Madoka and Math Dad 题目 分析 给一个n,构造一个数字,使这个数字每位和为n且这个数字相邻各位不能相等,且这个数是所有数中最大的. 要使数字最大,肯定要使位数尽可能的多,而且 ...

  9. [cf] 752 div2 B. XOR Specia-LIS-t

    前言 tag:tag:tag:异或 思维 贪心 *1100 传送门 : 题意 : 给定一个数组,询问 是否可以将数组分为任意段,使得每段中的最长上升子序列的异或值为000 思路 : 我们分贪心的分奇偶 ...

最新文章

  1. [纪录]仿IOS滚轮效果(竖直滑动选择器)
  2. swoole TCP UDP server
  3. vue 高德地图多边形_Vue + 高德地图画矢量图
  4. python能爬视频吗_Python爬取视频(其实是一篇福利)
  5. Dockerfile指令详解:ONBUILD 为他人作嫁衣裳
  6. webpack实用配置
  7. CSRankings 学术机构排行榜:“三巨头”不可撼动,清华大学突围 AI 榜单!
  8. vue获取麦克风_vue使用recorder.js实现录音功能
  9. poj 3420 Quad Tiling 【矩阵乘法】
  10. C++递归方法实现全排列
  11. 研旭至尊板——F28335知识点总结①
  12. 6.详解第二代蜂窝移动通信系统的典型代表——GSM和通用分组无线业务(GPRS)
  13. es 创建索引 指定id_Elasticsearch创建索引流程
  14. selenium 使用带密码的socks5代理方法
  15. 服务器更换损坏硬盘,更换一批服务器损坏硬盘
  16. AI Gossip | 八卦人工智能的前世今生
  17. 汽车控制器ECU安全校验算法实现
  18. mysql异地灾备架构_最佳实践 数据库异地灾备
  19. 大数据采集(hdu)第二章笔记
  20. RRT(rapidly exploring random tree)算法学习笔记,机器人自主探索,路径规划

热门文章

  1. 小i机器人智慧法律服务亭:百姓身边的法律武器
  2. Xib与Nib区别联系
  3. P4318-莫比乌斯函数+容斥
  4. HNOI 2014 Day1 米特运输
  5. 启用数据空间:让VirtualBox虚拟机中的Ubuntu10.10和XP主机互通有无
  6. 多AZ双活容灾部署的云端系统架构设计说明书框架
  7. PBX、FXO、FXS等通信相关知识
  8. 计算机奖项含金量排名,大家一起拍下NBA常规赛各项奖项含金量排名,都是个人观点,讨论讨论...
  9. 前端必备,5大mock省时提效小tips,用了提前下班一小时
  10. 影响PCBA制造的成本有很多方面,怎么有效降低成本?