题目说a1+a3=2*a2,所以我们可以判断a1,a2,a3的和是否可以分成三等份,如果可以,说明答案为0,如果不可以,说明答案为1(因为我可以挑选两个数,一个慢慢加,一个慢慢减,所以无论如何我的答案都不会超过1)。
#includeusing namespace std; int main() { int t; cin>>t; while(t--) { int a,b,c; cin>>a>>b>>c; if((a+b+c)%3)cout<<"1"< B 这题直接暴力模拟就可以了。先将0和1的个数记下来,按照题目意思是要将0全部放在前面,1全部放在后面,所以在前面0的部分出现1,我们就可以将它和后面1的部分中的0交换位置。
#include#include #include using namespace std; priority_queue ,greater >q; int main() { int t; cin>>t; while(t--) { int k=0; int n; cin>>n; string a; cin>>a; int cn0=0,cn1=0; for(int i=0;i C 这题其实挺简单的,就是挺难想到这种简单的方法。。。
要使c的个数大于a和b,还要使长度最小,一共就只有几种情况:aa,aba,aca,abca,acba,abbacca,accabba,然后就可以直接写了。#includeusing namespace std; int main() { int t; cin>>t; while(t--) { int n; cin>>n; string a; cin>>a; int res=0x3f3f3f3f; for(int i=0;i



