Codeforces Round #242 (Div. 2) <A-C>_html/css_WEB-ITnose

php中文网
发布: 2016-06-24 12:05:31
原创
982人浏览过

cf424 a. squats

题目意思:

有n(n为偶数)个x和X,求最少的变换次数,使得X的个数为n/2,输出变换后的序列。

解题思路:

统计X的个数ans,和n/2比较,少了的话,需要把n/2-ans个x变成X,多了的话需要把ans-n/2个X变成x.(从前往后扫一遍就行了)。

立即学习前端免费学习笔记(深入)”;

代码:

//#include<CSpreadSheet.h>#include<iostream>#include<cmath>#include<cstdio>#include<sstream>#include<cstdlib>#include<string>#include<string.h>#include<cstring>#include<algorithm>#include<vector>#include<map>#include<set>#include<stack>#include<list>#include<queue>#include<ctime>#include<bitset>#include<cmath>#define eps 1e-6#define INF 0x3f3f3f3f#define PI acos(-1.0)#define ll __int64#define LL long long#define lson l,m,(rt<<1)#define rson m+1,r,(rt<<1)|1#define M 1000000007//#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;char save[220];int n;int main(){   //freopen("in.txt","r",stdin);   //freopen("out.txt","w",stdout);   while(~scanf("%d",&n))   {       int ans=0;       scanf("%s",save+1);       for(int i=1;i<=n;i++)            if(save[i]=='X')                ans++;       printf("%d\n",abs(n/2-ans));       if(ans<n/2)       {           int cnt=0;           for(int i=1;i<=n;i++)           {               if(cnt>=(n/2-ans))               {                   printf("%c",save[i]);                   continue;               }               if(save[i]=='x')               {                   cnt++;                   printf("X");               }               else                    printf("X");           }       }       else       {           int cnt=0;           for(int i=1;i<=n;i++)           {               if(cnt==(ans-n/2))               {                   printf("%c",save[i]);                   continue;               }               if(save[i]=='X')               {                   cnt++;                   printf("x");               }               else                    printf("x");           }       }       putchar('\n');   }   return 0;}
登录后复制

CF 424B. Megacity

题目意思:

给一个中心城市的坐标(0,0)和人口s,n个周围城市,告诉n个城市的人口及位置坐标,求以中心城市为圆心的最小的半径,使得人口总数超过1000000-s.

解题思路:

先求出每个城市距离中心城市的距离,然后对距离从小到大排序,然后依次扫描,如果达到要求,就退出输出最小的半径。

代码:

//#include<CSpreadSheet.h>#include<iostream>#include<cmath>#include<cstdio>#include<sstream>#include<cstdlib>#include<string>#include<string.h>#include<cstring>#include<algorithm>#include<vector>#include<map>#include<set>#include<stack>#include<list>#include<queue>#include<ctime>#include<bitset>#include<cmath>#define eps 1e-6#define INF 0x3f3f3f3f#define PI acos(-1.0)#define ll __int64#define LL long long#define lson l,m,(rt<<1)#define rson m+1,r,(rt<<1)|1#define M 1000000007//#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;#define Maxn 1100struct Point{    double x,y;    double dis;    int v;}pp[Maxn];int n,s;int dp[Maxn];bool cmp(struct Point a,struct Point b){    return a.dis<b.dis;}int main(){   //freopen("in.txt","r",stdin);   //freopen("out.txt","w",stdout);   while(~scanf("%d%d",&n,&s))   {       for(int i=1;i<=n;i++)       {           double x,y;           scanf("%lf%lf%d",&x,&y,&pp[i].v);           pp[i].x=x;           pp[i].y=y;           pp[i].dis=sqrt(x*x+y*y);       }       sort(pp+1,pp+n+1,cmp);       /*for(int i=1;i<=n;i++)            printf("i:%d %lf\n",i,pp[i].dis);*/       double ans;       if(s>=1000000)       {           printf("0\n");           continue;       }       int lef=1000000-s;       int i=1;       while(lef>0&&i<=n)       {           ans=pp[i].dis;           lef-=pp[i].v;           i++;       }       if(lef>0)       {           printf("-1\n");           continue;       }       printf("%lf\n",ans);   }   return 0;}
登录后复制


CF 424C. Magic Formulas

题目意思:


给定pi,求Q。

解题思路:

抑或运算满足交换律和结合律。

原式可以等价于先对pi全部抑或,然后对每个i(1=

预处理出dp[i]=1^2^3..^i

代码:

//#include<CSpreadSheet.h>#include<iostream>#include<cmath>#include<cstdio>#include<sstream>#include<cstdlib>#include<string>#include<string.h>#include<cstring>#include<algorithm>#include<vector>#include<map>#include<set>#include<stack>#include<list>#include<queue>#include<ctime>#include<bitset>#include<cmath>#define eps 1e-6#define INF 0x3f3f3f3f#define PI acos(-1.0)#define ll __int64#define LL long long#define lson l,m,(rt<<1)#define rson m+1,r,(rt<<1)|1#define M 1000000007//#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;#define Maxn 1100000int dp[Maxn];int n;void init(){    dp[0]=0;    for(int i=1;i<=1000000;i++)        dp[i]=dp[i-1]^i;}int main(){   //freopen("in.txt","r",stdin);   //freopen("out.txt","w",stdout);   init();   while(~scanf("%d",&n))   {       int ans=0;       for(int i=1;i<=n;i++)       {           int p;           scanf("%d",&p);           ans=ans^p;           if((n/i)&1) //&AElig;&aelig;&Ecirc;&yacute;           {               ans=ans^dp[i-1];           }           ans=ans^dp[n%i];       }       printf("%d\n",ans);   }   return 0;}
登录后复制




HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号