#include<bits/stdc++.h>usingnamespace std;#define ll long longchar a[100010], b[100010];intmain(){int t;scanf("%d",&t);while(t--){scanf("%s %s", a, b);int l =strlen(a);
vector<int>c1,c2;
c2.push_back(0);int cnt =0;for(int i =0; i < l; i++){if(cnt%2==1&&a[i]==b[i]){
cnt++;
c1.push_back(i+1);}elseif(cnt%2==0&&a[i]!=b[i]){
cnt++;
c1.push_back(i+1);}}
cnt =0;for(int i =0; i < l; i++){if(cnt%2==1&&b[i]=='0'){
cnt++;
c2.push_back(i+1);}elseif(cnt%2==0&&b[i]!='0'){
cnt++;
c2.push_back(i+1);}}if(c1.size()<c2.size()){for(int i =0; i <(int)c1.size(); i++){if(i!=0)printf(" ");printf("%d", c1[i]);}}else{for(int i =0; i <(int)c2.size(); i++){if(i!=0)printf(" ");printf("%d", c2[i]);}}printf("\n");}return0;}
#include<bits/stdc++.h>usingnamespace std;#define ll long long
ll l[100010], r[100010];intmain(){int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);for(int i =1; i <= n; i++)scanf("%lld %lld",&l[i],&r[i]);
ll tem =0;
ll ans =0;for(int i =1; i <= n; i++){if(tem<l[i]){
ans +=(l[i]-tem+1);
tem = l[i];}elseif(tem>r[i]){
ans +=(tem-r[i]+1);
tem = r[i];}else{
ans++;}}printf("%lld\n", ans);}return0;}
#include<bits/stdc++.h>usingnamespace std;#define ll long longint s[100010];intmain(){int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);for(int i =0; i < n; i++)scanf("%d",&s[i]);
map<int,int>q;for(int i =0; i < n; i++) q[s[i]]++;sort(s,s+n);int maxn1 = s[n-1];// 最大数int cnt1 = q[s[n-1]];// 最大数个数int maxn2 =0;// 次大数int cnt2 =0;// 次大数个数for(int i =0; i < n; i++){if(s[i]==maxn1)continue;
maxn2 =max(s[i],maxn2);}
cnt2 = q[maxn2];if(cnt1==n){// 只包含一种数if(n%2==1){printf("-1\n");}else{printf("%d\n", maxn1);}}else{if(cnt1%n==1){// 最大数个数为奇数,并且存在其他数printf("%d\n", maxn1);}else{int ans =0;// 从大到小找到一个出现的个数为奇数的数for(map<int,int>::iterator it = q.begin(); it != q.end(); it++){if(it->second%2==1) ans = it->first;}if(ans==s[0]){// 该数为最小的数printf("-1\n");}elseif(ans==0){// 不存在奇数个数的数printf("%d\n", s[0]);}else{printf("%d\n", ans);}}}}return0;}
F: Flag Scramble Competition
题意:输出题目描述中出现次数最多的字母
思路:读入字符串,用map统计字母个数 (代码是找字母用的)
#include<bits/stdc++.h>usingnamespace std;#define ll long long;intmain(){
map<char,int>q;char s[10010];while(~scanf("%s", s)){int l =strlen(s);strlwr(s);// 将字母转为小写for(int i =0; i < l; i++){if(s[i]>='a'&&s[i]<='z'){
q[s[i]]++;}}}int maxn =0;char ans;for(map<char,int>::iterator it = q.begin(); it != q.end(); it++){if(maxn<it->second){
maxn = it->second;
ans = it->first;}}printf("%c\n", ans);return0;}
#include<bits/stdc++.h>usingnamespace std;#define ll long longchar s[100010];int day[20]={0,31,28,31,30,31,30,31,31,30,31,30,31};intjud(int l,int r){int cnt =0;int a = l;int b = r;while(a<b){if(s[a]==s[b]&&s[a]!=' '){
cnt++;
a++; b--;}else{break;}}if(cnt<4)return0;int y =0;int m =0;int d =0;for(int i = l; i <= r; i++){if(i-l<4){
y = y*10+s[i]-'0';}elseif(i-l<6){
m = m*10+s[i]-'0';}else{
d = d*10+s[i]-'0';}}if(y%400==0||(y%4==0&&y%100!=0)){
day[2]=29;}else{
day[2]=28;}if(m>0&&m<13&&d>0&&d<=day[m]){return1;}else{return0;}}intmain(){while(cin.getline(s,100010)){if(s[0]=='#')break;int l =strlen(s);int ans =0;for(int i =0; i < l-7; i++){if(jud(i,i+7)) ans++;}printf("%d\n", ans);}return0;}