首页 > 其他 > 详细

Codeforces Round #229

时间:2014-02-16 21:08:09      阅读:336      评论:0      收藏:0      [点我收藏+]

390 A. Inna and Alarm Clock

http://codeforces.com/contest/390/problem/A

水题一枚,两个set就可完成

bubuko.com,布布扣
 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 Code

390 B. Inna, Dima and Song

 

http://codeforces.com/contest/390/problem/B

同样也很水,两数之和相等的情况之下,要使两个数的乘积比较大,只要保证两个靠的比较近就行了,即(sum/2)*(sum-sum/2)

bubuko.com,布布扣
 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 Code

390 C. Inna and Candy Boxes

http://codeforces.com/contest/390/problem/C

这个题蛮有结题报告的价值的

题意:

给定一个长度N的01串S,再给一个整数K。

然后有W个询问,每个询问给一对整数L和R,问对原串在[L,R]这个区间上要修改多少个位置使得在L+K-1,L+2K-1,L+3K-1,...,R都是1,而其它位置都是0。题目保证R-L+1能够被K整除。

对于一次询问,首先求出原串中对应区间上1的个数X,和落在指定位置上1的个数Y,以及指定位置的个数Z。

Codeforces Round #229

原文:http://www.cnblogs.com/zhanzhao/p/3551125.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!