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)的更多相关文章

  1. 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 ...

  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 ...

  3. Codeforces Round #262 (Div. 2) 460C. Present(二分)

    题目链接:http://codeforces.com/problemset/problem/460/C C. Present time limit per test 2 seconds memory ...

  4. 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双袜子, ...

  5. 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 ...

  6. Codeforces Round #262 (Div. 2)解题报告

    详见:http://robotcator.logdown.com/posts/221514-codeforces-round-262-div-2 1:A. Vasya and Socks   http ...

  7. 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 ...

  8. Codeforces Round #262 (Div. 2) A B C

    题目链接 A. Vasya and Socks time limit per test:2 secondsmemory limit per test:256 megabytesinput:standa ...

  9. Codeforces Round #262 (Div. 2) 二分+贪心

    题目链接 B Little Dima and Equation 题意:给a, b,c 给一个公式,s(x)为x的各个位上的数字和,求有多少个x. 分析:直接枚举x肯定超时,会发现s(x)范围只有只有1 ...

随机推荐

  1. smaller programs should improve performance

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION In this section, we l ...

  2. 交流从选择coding.net开始

    之前提到我们需要coding.net(一个可以帮助你在线存放管理代码的地方,便于项目合作)来进行学习交流,它可以帮我们记录我们入门的点点滴滴,现在就简单介绍一下coding.net的注册及使用. 1. ...

  3. HIVE 时间操作函数

    转自http://www.oratea.net/?p=944 日期函数UNIX时间戳转日期函数: from_unixtime语法:   from_unixtime(bigint unixtime[,  ...

  4. ng-bind-html 的原素没有高度

    angularjs里绑定html元素,在页面的div里使用ng-bind-html <!-- html--> <div class="info" ng-bind- ...

  5. 传入一个label或者button,传入5s,6和6+的文字尺寸 快速定义文字大小

    func isIphone6() -> Bool { { return true } else { return false } } func isIphone6Plus() -> Boo ...

  6. [PointCloud] GICP

    泛化的ICP算法,通过协方差矩阵起到类似于权重的作用,消除某些不好的对应点在求解过程中的作用.不过可以囊括Point to Point,Point to Plane的ICP算法,真正的是泛化的ICP. ...

  7. PL/SQL不支持64位Oracle Client 解决办法

    解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed 说明PLSQL Developer并不支持Or ...

  8. HTTP协议 keep-alive连接 与 BS(firefox-thttpd)实验

    什么是 keep-alive 连接 https://en.wikipedia.org/wiki/HTTP_persistent_connection HTTP persistent connectio ...

  9. mysql安装配置问题(linux下)

    1.安装后使用:mysql -u root -p 无法登录mysql 错误提示:ERROR 1045 (28000): Access denied for user 'root'@'localhost ...

  10. cat常用参数详解

    cat常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近,我的一个朋友对linux特别感兴趣,于是我觉得每天交给他一个命令的使用,这样一个月下来也会使用30个命令,基 ...