今天早上也是打完了包河区,不得不说是太
了
所以说,还是水一篇文章吧
超级简单题吧,用max_score
和max_name
来计最大的名字和分数。
int n;scanf("%d",&n);
int score,max_score;
string name,max_name;
对于一个新输入的数据比一下大小就行了。。。
if(score>max_score)max_score=score,max_name=name;
按照题目来进行反转即可啊。
int n;
while(n--){string s;cin>>s;int rev=s;...
}
用rev来计s颠倒后的字符串是什么,可以分为两步:
1: 反转s
2: 按照6,9反转 0,1,8不操作 2,3,4,5,7来讲一下:用一个f=0来计,如果有2,3,4,5,7就f=1,最后判断一下f,如果f=1就直接输出0
写一下
for(int i=0;iif(rev[i]=='6')rev[i]='9';else if(rev[i]=='9')rev[i]='6';else if(rev[i]!='0'&&rev[i]!='1'&&rev[i]!='8'){f=1;break;}
}
最后对比一下s和rev即可。
if(s!=rev)f=1;
printf("%d\n"!f);
首先用getline来读取这个句子,maxstr和minstr计最大和最小长度的字符串,用stringstream来把里面所有的单词全部取出:
string s;cin>>s;
stringstream sins;
sins<>tmp){...
}
然后把他们和maxstr和minstr比一下大小:
while(sins>>tmp){int l=tmp.size(),mx=maxstr.size(),mi=minstr.size();if(l>mx)maxstr=tmp;if(l
首先把题目总结一下,首先就是残疾人就不计数据了,因为不用排队啊。然后用结构体数组存一下排队的所有人。
这里我用ol计了一下一个人是否是老年人
struct Node{int age,num,idx,ol;//年龄,编号,序列号,老年标记
}e[N];
bool cmp(const Node& ex,const Node& ey){if(ex.ol&&ey.ol){if(ex.age!=ey.age)return ex.age>ey.age;else return ex.idxey.ol;elsereturn ex.idxint tot=0,n;scanf("%d",&n);for(int i=1;i<=n;i++){int u,v,w;scanf("%d%d%d",&u,&v,&w);if(!w){e[++tot].age=v;e[tot].num=u;if(v>=60)e[tot].ol=1;e[tot].idx=tot;}}...
}
然后排序
sort(e+1,e+1+tot,cmp);
最后输出qwq不写了
用set或者priority_queue来排数据。
这是刷过的题啊,二分木材的长度:
对于长度x,看看它最多能弄多少段木材,判断是否>=m即可。
bool check(int x){int t=0;for(int i=1;i<=n;i++)t+=a[i]/x;return t>=m;
}
//二分答案:二分最大值
while(lint mid=l+r>>1;if(check(mid))l=mid+1;else r=mid;
}
printf("%d",l-1);