Codeforces Round #229
390 A. Inna and Alarm Clock
http://codeforces.com/contest/390/problem/A
水題一枚,兩個set就可完成
1 #include<iostream> 2 #include<string.h> 3 #include<set> 4 using namespace std; 5 6 set<int>s1,s2; 7 8 int main() 9 { 10 int n,a,b; 11 while(cin>>n) 12 { 13 s1.clear(); 14 s2.clear(); 15 while(n--) 16 { 17 cin>>a>>b; 18 s1.insert(a); 19 s2.insert(b); 20 } 21 int mm=s1.size(); 22 int nn=s2.size(); 23 cout<<min(mm,nn)<<endl; 24 } 25 return 0; 26 } View Code390?B. Inna, Dima and Song
?
http://codeforces.com/contest/390/problem/B
同樣也很水,兩數(shù)之和相等的情況之下,要使兩個數(shù)的乘積比較大,只要保證兩個靠的比較近就行了,即(sum/2)*(sum-sum/2)
1 #include<iostream> 2 #include<string.h> 3 #include<set> 4 #include<stdio.h> 5 using namespace std; 6 7 long long int a[100001],b[100001]; 8 9 int main() 10 { 11 long long int n,i; 12 while(cin>>n) 13 { 14 for(i=0;i<n;i++) 15 cin>>a[i]; 16 for(i=0;i<n;i++) 17 cin>>b[i]; 18 long long int sum=0; 19 for(i=0;i<n;i++) 20 { 21 if(a[i]+a[i]<b[i]||b[i]==1) 22 sum-=1; 23 else 24 { 25 long long int mm=b[i]/2; 26 long long int nn=b[i]-mm; 27 sum+=mm*nn; 28 } 29 } 30 cout<<sum<<endl; 31 } 32 return 0; 33 } View Code390?C. Inna and Candy Boxes
http://codeforces.com/contest/390/problem/C
這個題蠻有結(jié)題報告的價值的
題意:
給定一個長度N的01串S,再給一個整數(shù)K。
然后有W個詢問,每個詢問給一對整數(shù)L和R,問對原串在[L,R]這個區(qū)間上要修改多少個位置使得在L+K-1,L+2K-1,L+3K-1,...,R都是1,而其它位置都是0。題目保證R-L+1能夠被K整除。
對于一次詢問,首先求出原串中對應(yīng)區(qū)間上1的個數(shù)X,和落在指定位置上1的個數(shù)Y,以及指定位置的個數(shù)Z。
?
由于題目中已經(jīng)給出 ?r-l+1為k的整數(shù)倍 所以 ?給出左邊界 l ?那么第一個數(shù)一定為(l+k-1)由于做減法運算 ?所以不能包含這個點 ?所以 ?只要把給的l邊界l-1即可?
對于右邊界 ?一定是k ?所以直接用r作為右邊界即可
?
代碼:
1 #include<iostream> 2 #include<string.h> 3 #include<stdio.h> 4 using namespace std; 5 6 const int maxn=100005; 7 8 int a[11][maxn]; 9 10 int sum[maxn]; 11 12 int main() 13 { 14 string s; 15 16 int n,k,w; 17 freopen("aa.txt","r",stdin); 18 while(cin>>n>>k>>w) 19 { 20 cin>>s; 21 22 int l=s.length(); 23 sum[0]=0; 24 25 for(int i=0;i<l;i++) 26 { 27 int j=i+1; 28 sum[j]=sum[i]+(s[i]-'0'); 29 if(j>k) 30 a[j%k][j]=a[j%k][j-k]+(s[i]=='1'?-1:1); 31 else 32 a[j%k][j]=(s[i]=='1'?-1:1); 33 } 34 int aa,bb; 35 36 while(w--) 37 { 38 cin>>aa>>bb; 39 int sun=sum[bb]-sum[aa-1]; 40 aa--; 41 int sux=a[bb%k][bb]-a[aa%k][aa]; 42 cout<<sun+sux<<endl; 43 } 44 } 45 return 0; 46 } View Code?
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhanzhao/p/3551125.html
總結(jié)
以上是生活随笔為你收集整理的Codeforces Round #229的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。