暴力+构造

If r - l ≤ 4 we can all subsets of size not greater than k.
Else, if k = 1, obviously that answer is l. If k = 2,
answer is 1, because xor of numbers 2x and 2x + 1 equls 1.
If k ≥ 4 answer is 0 because xor of
to pairs with xor 1 is 0.

If k = 3, we can choose numbers 2x and 2x + 1 with xor 1.
So we need to know, if we can get xor equals 0. Suppose that
there are 3 such numbers xy and z (r ≥ x > y > z ≥ l)
with xor equals 0. Consider the most non-zero bit of numberx.
At the same bit of y it's also 1, because xor equls
0, and y > z. Consider the next bit of numbers. If z have 0 there,
we have to do next: set the previous bit of numbers x and y equals 0,
and set current bit equals 1. Obviously xor still equals
0, z hadn't changed and numbers x and y stood
closer to z, so they are still at [l, r].And x > y.Consider
the next bit of numbers. If z has zero here than we will change most bits of x и y at
the same way and so on. z > 0, so somewhen we will get to bit in which z has 1.
Since xorequals 0, the same bit of x would
be 1 because x > y, and y would
have 0 there. At the next bits we will change bit in x to 0,
and in numbers y and z to 1.Finally z would
be greater or equal than before, and x would be less or greater than before, and x > y > z would
be correct. So, we have the next: if such numbers xy and z exist
than also exist numbers:

1100…000

1011…111

0111…111

with xor equals 0. There are not much such triples, so we
can check them.

D. Little Victor and Set
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Little Victor adores the sets theory. Let us remind you that a set is a group of numbers where all numbers are pairwise distinct. Today Victor wants to find a set of integers S that
has the following properties:

  • for all x  the
    following inequality holds l ≤ x ≤ r;
  • 1 ≤ |S| ≤ k;
  • lets denote the i-th element of the set S as si;
    value  must
    be as small as possible.

Help Victor find the described set.

Input

The first line contains three space-separated integers l, r, k (1 ≤ l ≤ r ≤ 1012; 1 ≤ k ≤ min(106, r - l + 1)).

Output

Print the minimum possible value of f(S). Then print the cardinality of set |S|.
Then print the elements of the set in any order.

If there are multiple optimal sets, you can print any of them.

Sample test(s)
input
8 15 3
output
1
2
10 11
input
8 30 7
output
0
5
14 9 28 11 16
Note

Operation  represents
the operation of bitwise exclusive OR. In other words, it is the XOR operation.


#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std; typedef long long int LL; LL L,R,K;
LL ans=0x3f3f3f3f3f3f3f3f; int main()
{
cin>>L>>R>>K;
if(R-L+1<=4)
{
LL m=R-L+1;
LL sig=0;
for(LL i=1;i<(1LL<<m);i++)
{
LL temp=0;
LL wei=0;
LL si=i;
while(si)
{
wei++;
si=si&(si-1);
}
if(wei>K) continue;
for(LL j=0;j<m;j++)
{
if(i&(1LL<<j))
{
temp^=L+j;
}
}
if(temp<ans)
{
ans=temp;
sig=i;
}
}
cout<<ans<<endl;
LL wei=0;
LL tsig=sig;
while(tsig)
{
wei++;
tsig=tsig&(tsig-1);
}
cout<<wei<<endl;
for(LL i=0;i<m;i++)
{
if(sig&(1<<i))
{
cout<<L+i<<" ";
}
}
cout<<endl;
}
else
{
if(K==1)
{
cout<<L<<endl;
cout<<1<<endl;
cout<<L<<endl;
}
else if(K==2)
{
if(L%2) L++;
cout<<1<<endl;
cout<<2<<endl;
cout<<L<<" "<<L+1<<endl;
}
else if(K==3)
{
bool flag=false; LL mx=3,mi=1;
while(mx<=R)
{
if(mi>=L)
{
flag=true;
cout<<0<<endl<<3<<endl;
cout<<mx<<" "<<mx-1<<" "<<mi<<endl;
break;
} mx<<=1LL;
mi<<=1LL; mi++;
} if(flag==false)
{
if(L%2) L++;
cout<<1<<endl;
cout<<2<<endl;
cout<<L<<" "<<L+1<<endl;
}
}
else
{
cout<<0<<endl;
cout<<4<<endl;
if(L%2) L++;
cout<<L<<" "<<L+1<<" "<<L+2<<" "<<L+3<<endl;
}
}
return 0;
}

Codeforces 460 D. Little Victor and Set的更多相关文章

  1. Codeforces 460 DE 两道题

    D Little Victor and Set 题目链接 构造的好题.表示是看了题解才会做的. 假如[l,r]长度不超过4,直接暴力就行了. 假如[l,r]长度大于等于5,那么如果k = 1,显然答案 ...

  2. codeforces 460D:Little Victor and Set

    Description Little Victor adores the sets theory. Let us remind you that a set is a group of numbers ...

  3. Codeforces 460D Little Victor and Set(看题解)

    Little Victor and Set 其他都很好求, 只有k == 3的时候很难受.. 我们找到第一个不大于l的 t, 答案为 l, 3 * t, (3 * t) ^ l 感觉好像是对的, 感觉 ...

  4. Codeforces Round #483 (Div. 2) [Thanks, Botan Investments and Victor Shaburov!]

    题目链接:http://codeforces.com/contest/984 A. Game time limit per test:2 seconds memory limit per test:5 ...

  5. Codeforces 460D. Little Victor and Set

    D. Little Victor and Set time limit per test:1 second memory limit per test:256 megabytes input:stan ...

  6. Codeforces Round #460 (Div. 2) E. Congruence Equation (CRT+数论)

    题目链接: http://codeforces.com/problemset/problem/919/E 题意: 让你求满足 \(na^n\equiv b \pmod p\) 的 \(n\) 的个数. ...

  7. Codeforces 460D Little Victor and Set --分类讨论+构造

    题意:从区间[L,R]中选取不多于k个数,使这些数异或和尽量小,输出最小异或和以及选取的那些数. 解法:分类讨论. 设选取k个数. 1. k=4的时候如果区间长度>=4且L是偶数,那么可以构造四 ...

  8. codeforces 460D Little Victor and Set(构造、枚举)

    最近的CF几乎都没打,感觉挺水的一个题,不过自己仿佛状态不在,看题解才知道做法. 输入l, r, k (1 ≤ l ≤ r ≤ 1012; 1 ≤ k ≤ min(106, r - l + 1)). ...

  9. Codeforces Round #460 D. Karen and Cards

    Description Karen just got home from the supermarket, and is getting ready to go to sleep. After tak ...

随机推荐

  1. java源码阅读HashSet

    1类签名与注解 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneabl ...

  2. 设置Spark日志级别

    编辑Spark中conf中配置文件log4j.properties 设置日志级别为WARN,即:log4j.rootCategory=WARN, console

  3. python使用pickle,json等序列化dict

    import pickle, json, csv, os, shutil class PersistentDict(dict): ''' Persistent dictionary with an A ...

  4. jQuery (样式篇)

    1.$(document).ready 的作用是等页面的文档(document)中的节点都加载完毕后,再执行后续的代码,因为我们在执行代码的时候,可能会依赖页面的某一个元素,我们要确保这个元素真正的的 ...

  5. android 完美的tabhost 切换多activity布局

    TabHost在很多应用都会使用到,有时候在TabHost添加的Tab中设置view不能满足需求,因为在view中添加如PreferenceActivity相当困难. 之前在一个应用中需要实现使用Ta ...

  6. 2014秋C++第5周项目1參考-见识刚開始学习的人常见错误

    课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,实践要求见http://blog.csdn.net/sxhelijian/a ...

  7. SSH——增删改的实现一

    在上一节介绍了关于BOS项目底层的查询操作,接下来介绍一下curd里的其他三项操作步骤 一. 取派员添加 利用easyui在staff.jsp页面里构造添加页面(相关JavaBean创建步骤省略) & ...

  8. jumpserver-v0.5.0 应用图解

    一. Jumpserver启动 Python: 版本 3.6 1.1 启动Jumpserver 先进入Python虚拟环境 [root@localhost ~]# source /opt/py3/bi ...

  9. zabbix监控redis的key值

    配置zabbix客户端配置文件 vim /etc/zabbix/zabbix_agentd.conf 添加  Include=/etc/zabbix/zabbix_agentd.d/ 添加脚本对red ...

  10. xml文件的增删改读

    最近学习了利用XmlDocument对象对xml进行增删改读操作,就写了一个小的例子记录下来,加深印象,以后忘了也可以找出来看看. xml文件: <?xml version="1.0& ...