Codeforces Round #152 (Div. 2)
来源:互联网 发布:东京好玩的地方 知乎 编辑:程序博客网 时间:2024/05/16 05:35
A 题:略。
B题:当n等于1或2时,没有满足条件的数,当n等于3时,210是满足条件 的最小数,此后每个对应n的满足条件的最小数都是210的倍数,于是只要把210作为除数,模拟除法。
#include<stdio.h>#include<string.h>int main(){ int n,i,t; while(scanf("%d",&n)!=EOF) { t=1; if(n<3) printf("-1\n"); else if(n==3) printf("210\n"); else { for(i=1;i<n;i++) { t%=210; t*=10; } t%=210; if(t) t=210-t; printf("1"); for(i=0;i<n-4;i++) printf("0"); if(t>=100) printf("%d\n",t); else if(t>=10) printf("0%d\n",t); else printf("00%d",t); } } return 0;}
C题:纯几何题,因为只要求出满足条件的任意Xw,于是找一个临界值就可以了,假设从y2擦过,w为球的轨迹与y轴的夹角,则只要判断r/sinw+r+y1与y2的大小就行了。
#include<cstdio>#include<cmath> int main(){ double y1,y2,yw,xb,yb,r,xw,y; scanf("%lf%lf%lf%lf%lf%lf",&y1,&y2,&yw,&xb,&yb,&r); xw=xb/(yw-r-yb)/(1/(yw-r-yb)+1/(yw-y1-2*r)); y=r/sin(atan((xb-xw)/(yw-r-yb))); y1+=y+r; if(y1>=y2) printf("-1\n"); else printf("%.8f\n",xw); return 0;}
D题:模拟题,具体看代码。
#include<cstdio>#include<cstring>#define MAXN 500050int n,t;char str[MAXN];int judge(int val){ int i,num=val,ans;int end=0;//表示必须走到的最远的地方int last; // 走到house时出现糖果小于0的情况 for(i=0;i<n;i++){ if(str[i]=='H'){ end=i; num--; } else if(str[i]=='S'){ num++; if(num==0) end=i; } } if(num<0) return false; ans=0; last=-1; num=val; for(i=0;i<=end;i++){ ans++; if(str[i]=='H'){ num--; if(num==-1){ if(ans+((end-i)<<1)<=t) //当前点到最远点的距离的两倍(来回)加上之前花费的时间 return true; last=i; } } else if(str[i]=='S'){ num++; if(num==0){ ans+=(i-last)<<1; //之前出现糖果小于0的点,必须返回去 last=-1; } } } return ans<=t;}int main(){ int l,r; while(scanf("%d%d%s",&n,&t,str)!=EOF){ l=0,r=n; while(l<r) //二分枚举满足条件的最少糖果{ int mid=(l+r)>>1; if(judge(mid)) r=mid; else l=mid+1; } printf("%d\n",judge(r)?r:-1); } return 0;}
- Codeforces Round #152 (Div. 2)
- Codeforces Round #152 (Div. 2)
- Codeforces Round #102 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #103 (Div. 2)
- Codeforces Round #104 (Div. 2)
- Codeforces Round #105 (Div. 2)
- Codeforces Round #105 (Div. 2)
- Codeforces Round #107 (Div. 2)
- Codeforces Round #108 (Div. 2)
- Codeforces Round #110 (Div. 2)
- Codeforces Round #122 (Div. 2)
- Codeforces Round #121 (Div. 2)
- Codeforces Round #124 (Div. 2)
- Codeforces Round #124 (Div. 2)
- Codeforces Round #125 (Div. 2)
- Codeforces Round #124 (Div. 2)
- Codeforces Round #127 (Div. 2)
- VC如何更改单文档应用程序的标题
- 初摸Delphi还真是不习惯
- js实现日期大写
- 史上最贱游戏(附攻略)
- 新浪发起的UNIX开源软件项目memcachedb
- Codeforces Round #152 (Div. 2)
- 利用SOLR搭建企业搜索平台 之二(中文分词)
- 通过获取HDFS目录/文件夹大小来控制reduce个数
- CreateProcess 的正确关闭
- windows下安装配置nginx+php环境
- Source Insight 的使用
- 【Oracle入门系列】第03章_数据库查询基础
- 数据存储之使用SQL数据库保存数据
- Mac下Cocos2d-x Android开发环境配置