PAT B1032 挖掘机技术哪家强
#include<stdio.h> #include<string.h> int main() { int n; int score[100005]; int a,b; scanf("%d",&n); memset(score,0,sizeof(score)); int max=0; int maxnum=0; for(int i=1;i<=n;i++) { scanf("%d%d",&a,&b); score[a]+=b; if(score[a]>max) { max=score[a]; maxnum=a; } } printf("%d %d",maxnum,max); return 0; }
《算法笔记》2.2小节——C/C++快速入门->顺序结构
本来打算直接跳过的,顺手做了一下,E题卡了一下,
注意b*b,不要一激动写成b^b或者b^2,那是异或符号!
%7.2f代表,占用7位,小数保留两位
关于字符数组以%s输出的情况,emm如果char前面没赋值,基本就是后面按照默认' '来处理的。。
fill函数,fill(arr.begin,arr.end,val)
比如a[1000] fill(a,a+100,2)可以赋值任何数,但是实际被修改的是a[0]-a[99]这100个数哦!没a[100]!
《算法笔记》3.1小节——入门模拟->简单模拟
A题练一下多输入输出,还有最后0无输出,题意可能不明确,自己多理解
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int road[10005]; int main() { int l,m; int left,right; while(scanf("%d%d",&l,&m)!=EOF) { if(l==0 && m==0) return 0; fill(road,road+l+1,1); int ans=0; while(m--) { scanf("%d%d",&left,&right); fill(road+left,road+right+1,0); } for(int i=0;i<=l;i++) { if(road[i]==1) ans++; } printf("%d ",ans); } return 0; }
B题注意false更新,还有长度是不固定的
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int road[10005]; int main() { int a,a1,b,b1; while(scanf("%d",&a1)!=EOF) { bool fub=false,fua=false; char c; c=getchar(); if(a1<0) { fua=true; a=-a1; } else a=a1; while(c==',') { a=a*1000; scanf("%d",&a1); //printf("%d %d a ",a,a1); a=a+a1; c=getchar(); } scanf("%d",&b1); c=getchar(); if(b1<0) { fub=true; b=-b1; } else b=b1; while(c==',') { b=b*1000; scanf("%d",&b1); //printf("%d %d a ",b,b1); b=b+b1; c=getchar(); } if(fua) a=-a; if(fub) b=-b; printf("%d ",a+b); } return 0; }