码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #291 (Div. 2)

时间:2015-03-27 23:35:36      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

A题:

给出一个数,对这个数上的每一个位置的数可进行一种操作:

i(0到9)可变为9-i。

问给出的这个数经过一系列操作后,可能变成的最小的数是什么。

注意:一个数的首位不能为0.

注意:注意char和int是怎么变换的。

技术分享
 1 #include<cstdio>
 2 #include<cstring>
 3 int main()
 4 {
 5     char s[30];
 6     while(scanf("%s",&s)!=EOF){
 7         int len=strlen(s);
 8         int aa=s[0]-0;
 9         if(aa>=5&&aa!=9)
10             s[0]=(char)(9-aa);
11         for(int i=1;i<len;i++){
12             aa=s[i]-0;
13             if(aa>=5)
14                 s[i]=(char)(9-aa);
15         }
16         for(int i=0;i<len;i++)
17             printf("%c",s[i]);
18         printf("\n");
19     }
20     return 0;
21 }
View Code

B题:

有n+1个点,其中一个为Han Solo的位置,他有一把很厉害的枪,能够把某条直线(这条直线必须过Han Solo的点)上的敌人统统消灭。然后给出其他n个点,问至少需要开多少枪。

需要多少枪,则相当于问需要多少条直线,即多少个斜率,用set存放斜率的数量就好啦。

注意:xi-x0==0时斜率不存在,需要先判断。 

技术分享
 1 #include<cstdio>
 2 #include<set>
 3 using namespace std;
 4 set<double>s;
 5 int main()
 6 {
 7     int n;
 8     while(scanf("%d",&n)!=EOF){
 9         s.clear();
10        double x0,y0;
11         bool  cnt=false;
12         scanf("%lf%lf",&x0,&y0);
13         double xi,yi;
14         for(int i=1;i<=n;i++){
15             scanf("%lf%lf",&xi,&yi);
16             xi-=x0;
17             yi-=y0;
18             if(xi==0)
19                 cnt=true;
20             else{
21                 double k=(double)(yi/xi);
22                 s.insert(k);
23             }
24         }
25         int sum=s.size();
26         if(cnt)
27             sum++;
28         printf("%d\n",sum);
29     }
30     return 0;
31 }
View Code

 

Codeforces Round #291 (Div. 2)

标签:

原文地址:http://www.cnblogs.com/-maybe/p/Codeforces.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!