嘉兴平湖网站建设,福建住房和城乡建设厅官网,网页设计样图,哪家公司做网站结算好目录 A. Secret Sport
题目分析:
B. Two Out of Three
题目分析:
C. Anonymous Informant 题目分析: A. Secret Sport 题目分析:
A,B一共打n场比赛#xff0c;输入一个字符串由A和‘B’组成代表A赢或者B赢#xff08;无平局#xff09;#xff0c;因为题目说明这个人…目录 A. Secret Sport
题目分析:
B. Two Out of Three
题目分析:
C. Anonymous Informant 题目分析: A. Secret Sport 题目分析:
A,B一共打n场比赛输入一个字符串由A和‘B’组成代表A赢或者B赢无平局因为题目说明这个人记得一定打了n场比赛所以也就是n场比赛结束题目说明一旦分出胜负比赛当场结束那么一整场比赛的结束一定是分出了胜者所以一定是字符串的最后一个也没有所谓的?(平局)的情况出现
#includebits/stdc.h
#pragma GCC optimize(Ofast)
#define INF 0x3f3f3f3f
#define IOS ios::sync_with_stdio(false);cin.tie(0);
#define int long long
#define pb push_back
#define vct vector
#define checkbit __builtin_popcount
#define gcd __gcd
#define use int T;cinT;while(T--)
#define LEN length()
#define all(a) a.begin(),a.end()
templateclass T bool mmax(T u, T v) { return u v ? (u v, 1) : 0; }
templateclass T bool mmin(T u, T v) { return u v ? (u v, 1) : 0; }
#define lowbit(x) (x(-x))
#define yes coutYESendl
#define no coutNOendl
using namespace std;
typedef pairint,intpii;
const int N 1e57;
signed main()
{IOS
use{int n;cinn;string a;cina;couta.back()endl;}
return 0;
}B. Two Out of Three 题目分析:
给定一个数组a让创造出一个等长数组并且满足题目条件aiaj时那三条不过一整个b数组里面只能出现三种之中的两种如果出现三种或者一种结果是不对的。
对于a数组必须有重复的数才行否则连前提条件aiaj都满足不了,也就是0种。
对于重复数
出现两次的数那么我们让第一个数为1第二个数为2只能 满足出现1种的情况所以必须要有至少两组的出现两次的数例如样例31 1 2 2.对于出现两次以上的数比如出现了3次我们较为想当然的让它们为1 2 3结果发现这样写三种全有那么对于这种我们只能让它出现三种其中的一种也就是与第一种情况相同换句话说对于出现两次的数和出现两次以上的数是一种做法 .
#includebits/stdc.h
#pragma GCC optimize(Ofast)
#define INF 0x3f3f3f3f
#define IOS ios::sync_with_stdio(false);cin.tie(0);
#define int long long
#define pb push_back
#define vct vector
#define checkbit __builtin_popcount
#define gcd __gcd
#define use int T;cinT;while(T--)
#define LEN length()
#define all(a) a.begin(),a.end()
templateclass T bool mmax(T u, T v) { return u v ? (u v, 1) : 0; }
templateclass T bool mmin(T u, T v) { return u v ? (u v, 1) : 0; }
#define lowbit(x) (x(-x))
#define yes coutYESendl
#define no coutNOendl
using namespace std;
typedef pairint,intpii;
const int N 1e57;
signed main()
{IOS
use{int n;cinn;vctinta(n1);int cnt[101]{};for(int i1;in;i){cina[i];cnt[a[i]];}int x20;for(int i1;i100;i){if(cnt[i]2)x2;}if(x22)cout-1endl;else{vctboolst(101,1);int cntx1;for(int i1;in;i){if(cnt[a[i]]2st[a[i]]cntxcntx3){coutcntx1 ;st[a[i]]0;cntx;}else cout1 ;}coutendl;}
}return 0;
}C. Anonymous Informant 题目分析:
给一个数组b,有人说这是由一个数组a进行如下操作得到的:
取一个x满足将a数组向左移x格 让判断真假。
对于第x位置的向左移动x格就变成了末尾也就是,那么既然b是由a数组得来的我们可以逆推出每次操作向右移动格最终得到数组a因为数组a不是确定的所以我们需要判断在逆推回a数组的时候是否会出现不可行的情况因为正推的条件是,故逆推的条件是如果不满足逆推条件也就是不可行情况结果为假。
对于操作次数,故我们考虑去除多余重复的操作也就是取次操作即可.
#includebits/stdc.h
#pragma GCC optimize(Ofast)
#define INF 0x3f3f3f3f
#define IOS ios::sync_with_stdio(false);cin.tie(0);
#define int long long
#define pb push_back
#define vct vector
#define checkbit __builtin_popcount
#define gcd __gcd
#define use int T;cinT;while(T--)
#define LEN length()
#define all(a) a.begin(),a.end()
templateclass T bool mmax(T u, T v) { return u v ? (u v, 1) : 0; }
templateclass T bool mmin(T u, T v) { return u v ? (u v, 1) : 0; }
#define lowbit(x) (x(-x))
#define yes coutYESendl
#define no coutNOendl
using namespace std;
typedef pairint,intpii;
const int N 1e57;
signed main()
{IOS
use{int n,k;cinnk;vctinta(n1);int masmin(n,k);for(int i1;in;i){cina[i];}int xn;bool isok1;while(mas--){if(a[x]n){isok0;break;}x(xn-a[x])%n;}if(isok)coutYesendl;else coutNoendl;
}return 0;
}