Codeforces Round #303 (Div. 2)(A,B,C,D)
来源:互联网 发布:shutting down mysql 编辑:程序博客网 时间:2024/05/18 02:42
A:
题目地址:Toy Cars
题意:给一个n*n的矩阵,-1只在对角线出现(因为自己不能撞自己),0代表没有车在碰撞,1代表第i辆车(横坐标)被撞坏了,2代表第j辆车(纵坐标)被撞坏了,3代表两辆车都撞坏了。问哪几辆车完好无损。
思路:遍历i。对每一行来说,只要有1和3就代表这辆车跪了,然后只要找出每一行没1和3的就好辣。
#include <stdio.h>#include <math.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <sstream>#include <algorithm>#include <set>#include <queue>#include <stack>#include <map>using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const double pi= acos(-1.0);const double esp=1e-6;const int maxn=110;int a[maxn][maxn];int b[maxn];int main(){ int n; while(~scanf("%d",&n)){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ scanf("%d",&a[i][j]); } } int flag; int num=0; for(int i=0;i<n;i++){ flag=0; for(int j=0;j<n;j++){ if(a[i][j]==1||a[i][j]==3){ flag=1; break; } } if(!flag) b[num++]=i; } printf("%d\n",num); if(num==0) continue; for(int i=0;i<num-1;i++) printf("%d ",b[i]+1); printf("%d\n",b[num-1]+1); } return 0;}
B:
题目地址:Equidistant String
题意:求一个字符串,使得它与S,T,相似度相差相等。
思路:就是找出S,T之间的相差个数,相差为奇数,输出impossible。输出为偶数的话不同的前半部分输出S后半部分输出T就好了。
#include <stdio.h>#include <math.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <sstream>#include <algorithm>#include <set>#include <queue>#include <stack>#include <map>using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const double pi= acos(-1.0);const double esp=1e-6;const int maxn=1e5+10;char s[maxn];char t[maxn];int main(){ scanf("%s %s",s,t); int cnt=0; int len=strlen(s); for(int i=0;i<len;i++){ if(s[i]!=t[i]) cnt++; } if(cnt&1) puts("impossible"); else{ cnt=cnt/2; for(int i=0;i<len;i++){ if(s[i]!=t[i]){ if(cnt){ printf("%c",s[i]); cnt--; } else printf("%c",t[i]); } else printf("%c",s[i]); } } puts(""); return 0;}
C:
题目地址: Woodcutters
题意:有n棵树,给出每棵树的位置和高度,然后把树砍掉,树可以向左倒也可以向右倒。输出最多能砍几棵树。
思路:利用贪心的思想。第一棵树的左边和最后一棵树的右边没树,所以他们向两边倒,然后对于中间的树来说,首先先向左边倒,然后左边距离如果不够的话再向右边倒,向右倒的时候注意更新一下距离。
#include <stdio.h>#include <math.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <sstream>#include <algorithm>#include <set>#include <queue>#include <stack>#include <map>using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const double pi= acos(-1.0);const double esp=1e-6;const int maxn=1e5+10;int x[maxn];int h[maxn];int main(){ int n; scanf("%d",&n); if(n==1){ puts("1"); } else{ for(int i=1;i<=n;i++){ scanf("%d %d",&x[i],&h[i]); } int cnt=2; for(int i=2;i<=n-1;i++){ if(x[i]-x[i-1]>h[i]) cnt++; else if(x[i+1]-x[i]>h[i]&&(x[i]-x[i-1])<=h[i]){ x[i]=x[i]+h[i]; cnt++; } } printf("%d\n",cnt); } return 0;}
D:
题目地址: Queue
题意:有n个人,每个人都有一个等待时间,如果对于当前的人来说总等待时间超过自己的等待时间,那么这个人就会失望,问换一下顺序,使失望的人最少,问最多有多少个人不失望。
思路:排一下序然后加然后与当前的比较。这种题为啥会是D?
#include <stdio.h>#include <math.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <sstream>#include <algorithm>#include <set>#include <queue>#include <stack>#include <map>using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const double pi= acos(-1.0);const double esp=1e-6;const int maxn=1e5+10;int t[maxn];int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&t[i]); } int cnt=0; LL sum=0; sort(t,t+n); for(int i=0;i<n;i++){ if(sum<=t[i]){ sum+=t[i]; cnt++; } } printf("%d\n",cnt); return 0;}
2 0
- Codeforces Round #303 (Div. 2) A B C D
- Codeforces Round #303 (Div. 2)(A,B,C,D)
- Codeforces Round #179 (Div. 2)A、B、C、D
- Codeforces Round #186 (Div. 2)A、B、C、D、E
- Codeforces Round #202 (Div. 2) (A、B、C、D)
- Codeforces Round #211 (Div. 2)(A,B,C,D)
- Codeforces Round #220 (Div. 2)(A,B,C,D)
- Codeforces Round #231 (Div. 2)A, B, C, D
- Codeforces Round #258 (Div. 2)-(A,B,C,D,E)
- Codeforces Round #246 (Div. 2) A,B,C,D
- Codeforces Round #261 (Div. 2) A,B,C,D,E
- Codeforces Round #259 (Div. 2) A/B/C/D
- Codeforces Round #257 (Div. 2) A/B/C/D
- Codeforces Round #256 (Div. 2) A/B/C/D
- Codeforces Round #262 (Div. 2)-A,B,C,D
- Codeforces Round #263 (Div. 2) A,B,C,D,E
- Codeforces Round #264 (Div. 2) A,B,C,D,E
- Codeforces Round #276 (Div. 2) A B C D
- Node安装之windows篇
- 三角、指数、对数、幂函数
- 编译ffmpeg + opencv
- 关于单向链表的相关一系列操作(作为备忘)
- Git之1——安装和基本仓库的初始化
- Codeforces Round #303 (Div. 2)(A,B,C,D)
- 常见的面试题(整理)
- 二叉树
- iOS蓝牙4.0开发03-执行常见的Periphral角色任务
- 图论500题
- 折腾笔记:架设OpenConnect Server给iPhone提供更顺畅的网络生活
- 关于双向链表的相关一系列操作(作为备忘)
- LeetCode(130) Surrounded Regions
- 欢迎使用CSDN-markdown编辑器