Codeforces Round #262 (Div. 2)
A
- #include <iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<stdlib.h>
- #include<vector>
- #include<cmath>
- #include<queue>
- #include<set>
- using namespace std;
- #define N 100000
- #define LL long long
- #define INF 0xfffffff
- const double eps = 1e-;
- const double pi = acos(-1.0);
- const double inf = ~0u>>;
- int n,m;
- int main()
- {
- int n,m,i,j;
- cin>>n>>m;
- if(m>n)
- cout<<n<<endl;
- else
- {
- int o = ;
- while(n)
- {
- n--;
- o++;
- if(o%m==) n++;
- }
- cout<<o<<endl;
- }
- return ;
- }
B
枚举和值
- #include <iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<stdlib.h>
- #include<vector>
- #include<cmath>
- #include<queue>
- #include<set>
- using namespace std;
- #define N 100000
- #define LL long long
- #define INF 0xfffffff
- #define M 1000000000
- const double eps = 1e-;
- const double pi = acos(-1.0);
- const double inf = ~0u>>;
- int o[N];
- int judge(LL x)
- {
- int ans = ;
- while(x)
- {
- ans+=x%;
- x/=;
- }
- return ans;
- }
- int main()
- {
- int a,b,c,i,j;
- cin>>a>>b>>c;
- int g = ;
- for(i = ; i <= ; i++)
- {
- LL k = (LL)b*pow(i*1.0,a)+c;
- if(judge(k)==i&&k>&&k<M)
- o[++g] = k;
- }
- cout<<g<<endl;
- if(g)
- {
- sort(o+,o+g+);
- for(i = ; i < g ; i ++)
- cout<<o[i]<<" ";
- cout<<o[i]<<endl;
- }
- return ;
- }
C
二分高度,之后用高度减去原有高度,就可以知道每株花被浇了多少水,用线段树维护一下就可以得到最少浇水的次数。
- #include <iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<stdlib.h>
- #include<vector>
- #include<cmath>
- #include<queue>
- #include<set>
- using namespace std;
- #define N 100010
- #define LL long long
- #define INF 0xfffffff
- #define M 1000200000
- const double eps = 1e-;
- const double pi = acos(-1.0);
- const double inf = ~0u>>;
- int a[N],o[N];
- LL s[N<<];
- int n,m,w;
- void build(int l,int r,int w)
- {
- s[w] = ;
- if(l==r)
- {
- s[w] = o[l];
- return ;
- }
- int m = (l+r)>>;
- build(l,m,w<<);
- build(m+,r,w<<|);
- }
- void down(int w,int m)
- {
- if(s[w])
- {
- s[w<<] += s[w];
- s[w<<|] += s[w];
- s[w] = ;
- }
- }
- void update(int a,int b,int d,int l,int r,int w)
- {
- if(a<=l&&b>=r)
- {
- s[w]+=d;
- return ;
- }
- down(w,r-l+);
- int m = (l+r)>>;
- if(a<=m) update(a,b,d,l,m,w<<);
- if(b>m) update(a,b,d,m+,r,w<<|);
- }
- LL query(int p,int l,int r,int w)
- {
- if(l==r)
- return s[w];
- down(w,r-l+);
- int m = (l+r)>>;
- if(p<=m) return query(p,l,m,w<<);
- else return query(p,m+,r,w<<|);
- }
- int cal(int k)
- {
- int i,j;
- for(i = ; i <= n; i++)
- if(k>a[i]) o[i] = k-a[i];
- else o[i] = ;
- build(,n,);
- LL num = ;
- for(i = ; i <= n; i++)
- {
- int pp = query(i,,n,);
- if(pp>) {update(i,min(n,i+w-),-pp,,n,);num+=pp;} if(num>m) return ;
- }
- if(num<=m) return ;
- return ;
- }
- int main()
- {
- int i,j;
- cin>>n>>m>>w;
- for(i = ; i <= n; i++)
- scanf("%d",&a[i]);
- int low = ,high = M,mid;
- int ans = ;
- while(low<=high)
- {
- mid = (low+high)>>;
- if(cal(mid)==)
- high = mid-;
- else
- {
- low = mid+;
- ans = max(ans,mid);
- }
- }
- cout<<ans<<endl;
- return ;
- }
D
对于
k=1 ,ans = L。
连续偶奇异或是为1的 比如10 11 12 13等 ,而奇偶则是不一定的
k= 2, 如果l%2==0,ans = L^(L+1)=1 ,否则要根据R-L+1的取值决定
k= 4 ,如果L%2=0,ans = L^(L+1)^(L+2)^(L+3) = 0,否则如果R-L+1>4 也是为偶奇偶奇=0的,若R-L+1=4 就可转化为3的时候做。
k=3 ,有可能为1也有可能为0 ,假设L-R范围内的三个数x,y,z异或为0,x,y,z不同,就设x>y>z,那么x,y已确定,那么就是尽可能让z大,
比如
x 100110001111 那么y值的第一位一定为1,不然z就为1就不符合假设y>z了,因为y<x,所以之后遇到x为0的位,y,z也是为0的,一旦再遇到一位1,就可以把y置为0,z置为1,再之后z就可以一直为1,而y的变化可以依据x,z而定。
x 100110001111...1
y 100001110000...0
z 000111111111...1
这样z将获得<R的最大值,再与L相比较就可以知道结果了。
- #include <iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<stdlib.h>
- #include<vector>
- #include<cmath>
- #include<queue>
- #include<set>
- using namespace std;
- #define N 100000
- #define LL long long
- #define INF 0xfffffff
- const double eps = 1e-;
- const double pi = acos(-1.0);
- const double inf = ~0u>>;
- LL a[];
- int di[];
- void judge(LL l,LL r)
- {
- LL x = r;
- LL i;
- int g = ;
- while(x)
- {
- di[g++] = x%;
- x/=;
- }
- LL y = ;
- LL z = ;
- int flag = ;
- y+=((LL)<<(g-));
- for(i = g- ; i >= ; i--)
- {
- if(di[i])
- {
- flag = ;
- z += ((LL)<<i);
- }
- else if(flag)
- {
- z+=((LL)<<i);
- y+=((LL)<<i);
- }
- }
- if(z>=l)
- {
- cout<<"0\n";
- cout<<"3\n";
- cout<<r<<" "<<y<<" "<<z<<endl;
- }
- else
- {
- cout<<"1\n";
- cout<<"2\n";
- if(l%)
- cout<<l+<<" "<<l+<<endl;
- else
- cout<<l<<" "<<l+<<endl;
- }
- }
- int main()
- {
- LL l,r,i,k;
- cin>>l>>r>>k;
- if(r==l)
- {
- cout<<l<<endl;
- cout<<"1\n";
- cout<<l<<endl;
- return ;
- }
- if(l%==)
- {
- if(r-l+==||k<=)
- {
- if(k==)
- {
- cout<<l<<endl;
- cout<<"1\n";
- cout<<l<<endl;
- }
- else
- {
- cout<<"1\n";
- cout<<"2\n";
- cout<<l<<" "<<l+<<endl;
- }
- }
- else if(r-l+==||k==)
- {
- judge(l,r);
- }
- else
- {
- cout<<"0\n";
- cout<<"4\n";
- for(i = l ; i < l + ; i++)
- cout<<i<<" ";
- puts("");
- }
- }
- else
- {
- if(r-l+==||k<=)
- {
- if(k==||(r-l+==&&(l^(l+))>l))
- {
- cout<<l<<endl;
- cout<<"1\n";
- cout<<l<<endl;
- }
- else
- {
- if(r-l+==)
- {
- cout<<(l^(l+))<<endl;
- cout<<"2\n";
- cout<<l<<" "<<l+<<endl;
- }
- else
- {
- cout<<"1\n";
- cout<<"2\n";
- cout<<l+<<" "<<l+<<endl;
- }
- }
- }
- else if(r-l+==||k==)
- {
- judge(l,r);
- }
- else if(r-l+==)
- {
- int flag = ;
- judge(l,r);
- }
- else
- {
- cout<<"0\n";
- cout<<"4\n";
- for(i = l+ ; i < l+ ; i++)
- cout<<i<<" ";
- puts("");
- }
- }
- return ;
- }
Codeforces Round #262 (Div. 2)的更多相关文章
- Codeforces Round #262 (Div. 2) 1003
Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...
- Codeforces Round #262 (Div. 2) 1004
Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...
- Codeforces Round #262 (Div. 2) 460C. Present(二分)
题目链接:http://codeforces.com/problemset/problem/460/C C. Present time limit per test 2 seconds memory ...
- codeforces水题100道 第十五题 Codeforces Round #262 (Div. 2) A. Vasya and Socks (brute force)
题目链接:http://www.codeforces.com/problemset/problem/460/A题意:Vasya每天用掉一双袜子,她妈妈每m天给他送一双袜子,Vasya一开始有n双袜子, ...
- Codeforces Round #262 (Div. 2) E. Roland and Rose 暴力
E. Roland and Rose Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/pro ...
- Codeforces Round #262 (Div. 2)解题报告
详见:http://robotcator.logdown.com/posts/221514-codeforces-round-262-div-2 1:A. Vasya and Socks http ...
- Codeforces Round #262 (Div. 2)460A. Vasya and Socks(简单数学题)
题目链接:http://codeforces.com/contest/460/problem/A A. Vasya and Socks time limit per test 1 second mem ...
- Codeforces Round #262 (Div. 2) A B C
题目链接 A. Vasya and Socks time limit per test:2 secondsmemory limit per test:256 megabytesinput:standa ...
- Codeforces Round #262 (Div. 2) 二分+贪心
题目链接 B Little Dima and Equation 题意:给a, b,c 给一个公式,s(x)为x的各个位上的数字和,求有多少个x. 分析:直接枚举x肯定超时,会发现s(x)范围只有只有1 ...
随机推荐
- MySQL常用问题解决方法
Q: # table 损坏 Table 'table_name' is marked as crashed and should be repaired A: 恢复数据表的索引:myisamchk - ...
- 制作U盘启动盘及安装操作系统的方法
U盘启动盘制作方法: 1.从网上下载最新的老毛桃U盘启动制作工具主程序并安装 2.插入U盘(制作启动盘前先保存好你的资料到其它地方,以防丢失不可找回) 3.插入正确的U盘后程序会自动检测到U盘,启动模 ...
- C#基础知识大杂烩
这样是调用父类中第二个有参的构造函数,如果去掉Base默认调用无参构造函数 注意执行顺序是:先调用父类的构造函数,然后再执行子类自己的构造函数. 父类: class Person { public P ...
- EBS创建相应的用户
登陆EBS,依次点击"System Administrator"-->"Security"-->"User"-->&quo ...
- [原创]java WEB学习笔记94:Hibernate学习之路---session 的管理,Session 对象的生命周期与本地线程绑定
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 进程 swoole
父进程创建子进程,子进程会复制父进程的内存和上下文环境,但是互相独立,如果两个进程是独立的是怎么互相通信的了,可以用共享内存,共享内存不属于任何一个进程,其他进程可以访问共享内存,查下系统的共享内存分 ...
- 助手系列之python的FTP服务器
电脑的OS是Win7,Python版本是2.7.9,安装了pip 因为python没有内置可用的FTP SERVER,所以先选一个第三方的组件安装上,这里我选的是pyftpdlib pip insta ...
- configure.ac:32: error: possibly undefined macro: AC_DEFINE
在ubuntu 下编译snappy时,在检查依赖关系时,处理autoconf的包时,在相关依赖包都已经安装的情况下,报如下错误,死活不过. configure.ac:32: error: possib ...
- Struts2&Hibernate&Spring框架目录
第3章 Struts2框架 Struts是流行和成熟的基于MVC设计模式的Web应用程序框架 使用目的:减少在运用MVC设计模型来开发Web应用的时间 3.1 Struts2框架概述 3.1.1 ...
- [已解决] windows 80端口被占用
看下是不是IIS开着,如果是关掉就OK拉 原文地址:http://www.cnblogs.com/gifisan/p/5822156.html