http://codeforces.com/contest/1153/problem/A
题意有n辆车有一个人从第m站上车。接下来n行每行两个数ab代表有一路车第一站到a站然后每隔b站停一次。问你这个人会上哪个车。输出任意答案即可。
思路数据1e5直接标记会到的站点暴力跑就可以了。
1 #include 2 using namespace std; 3 4 int n,m; 5 int a[100005]; 6 int d[100005]; 7 int p[300005]; 8 int main(){ 9 cin >> n >> m;10 memset(p,0,sizeof(p));11 for(int i 1;i < n;i ){12 cin >> a[i] >> d[i];13 int t a[i];14 while(t < 300000){15 p[t] i;16 t d[i];17 }18 }19 for(int i m;i < 300000;i ){20 if(p[i] ! 0){21 cout <
http://codeforces.com/contest/1153/problem/B
题意第一行三个数代表某种由1*1*1的积木搭成的一个形状的长宽高。第二行m个数代表正视图的每个格子有多高。第三行n个数为左视图的每隔各自有多高。下面n*m个数代表俯视图的每个格子是否有积木。
输出n*m个数代表俯视图不过要输出每个点的有几块积木。输出任意答案即可。
思路ans[i][j] min(front[j],left[i])。
1 #include 2 using namespace std; 3 4 int n,m,k; 5 int fr[105]; 6 int lf[105]; 7 int top[105][105]; 8 int ans[105][105]; 9 int main(){10 cin >> n >> m >> k;11 memset(ans,0,sizeof(ans));12 for(int i 1;i < m;i ){13 cin >> fr[i];14 }15 for(int i 1;i < n;i ){16 cin >> lf[i];17 }18 for(int i 1;i < n;i ){19 for(int j 1;j < m;j ){20 cin >> top[i][j];21 }22 }23 for(int i 1;i < n;i ){24 for(int j 1;j < m;j ){25 if(top[i][j]){26 ans[i][j] min(lf[i],fr[j]);27 }28 }29 }30 for(int i 1;i < n;i ){31 for(int j 1;j < m;j ){32 if(j ! 1){cout <<" ";}33 cout << ans[i][j];34 }cout << endl;35 }36 37 38 39 return 0;40 } B
http://codeforces.com/contest/1153/problem/C
题意给一串只含有(,),?的字符串你要将问好换成左右括号问你全部将问号填上之后会不会形成一个所有前缀串的括号都不匹配但是全串的括号匹配的串。
思路很明显初始串长度必须为偶数左右括号数量不能超过串长的一半这条卡了我两发有点蠢。然后贪心填写左括号直到左括号用完。最后判断就行了。
1 #include 2 using namespace std; 3 4 int n,m; 5 char in[300005]; 6 int main(){ 7 cin >> n; 8 scanf("%s",in); 9 if(n % 2){cout <<":(" <
http://codeforces.com/contest/1153/problem/D
D题留坑感觉是有一种方式最优的还没想到
转:https://www.cnblogs.com/love-fromAtoZ/p/10704080.html