bzoj3668 [Noi2014]起床困难综合症——贪心
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3668
一开始想着倒序推回去看看这一位能不能达到来着,因为这样好中途退出(以为不这样会T);
没想到正着的0和1可能出现一样的结果...
这是WA代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int const maxn=1e5+;
int n,m,t[maxn],ans,cnt[],op[maxn],c;
char ch[];
int cal(int x)
{
memset(cnt,,sizeof cnt);
int ret=;
while(x)cnt[++ret]=x%,x/=;
return ret;
}
int main()
{
scanf("%d%d",&n,&m);
int mx=;
for(int i=;i<=n;i++)
{
scanf("%s%d",&ch,&t[i]);
if(ch[]=='A')op[i]=;//&
if(ch[]=='O')op[i]=;//|
if(ch[]=='X')op[i]=;//^
mx=max(mx,t[i]);
}
int k=cal(mx);
for(int i=k;i;i--)
{
// if(ans+(1<<(i-1))>m)continue;
bool flag=;int nw=;
for(int j=n;j;j--)
{
cal(t[j]);
if(op[j]==&&nw==&&cnt[i]==){flag=;break;}
if(op[j]==&&nw==&&cnt[i]==){flag=;break;}
if(op[j]==)nw^=cnt[i];
}
if(!flag)
{
if(nw==)ans+=(<<(i-));
else if(c+(<<(i-))<=m)c+=(<<(i-)),ans+=(<<(i-));
}
}
printf("%d",ans);
return ;
}
囧
而且 i 不是从 mx 的最高位开始而是从 m 的最高位开始的...
也不用中途退出什么的,因为位数没有那么大;
可以先用0得到一个 ans 作为底线,然后看看能不能通过某些位上放1让答案更大。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int const maxn=1e5+;
int n,m,t[maxn],ans,cnt[],op[maxn],c;
char ch[];
int cal(int x)
{
memset(cnt,,sizeof cnt);
int ret=;
while(x)cnt[++ret]=x%,x/=;
return ret;
}
int main()
{
scanf("%d%d",&n,&m);
int mx=;
for(int i=;i<=n;i++)
{
scanf("%s%d",&ch,&t[i]);
if(ch[]=='A')op[i]=,ans&=t[i];//&
if(ch[]=='O')op[i]=,ans|=t[i];//|
if(ch[]=='X')op[i]=,ans^=t[i];//^
}//得到输入0后的ans
int k=cal(m);k--;
for(int i=k;i>=;i--)
{
int tmp=(<<i);
if(tmp>m||(ans&(<<i)))continue;
for(int j=;j<=n;j++)
{
if(op[j]==)tmp&=t[j];
if(op[j]==)tmp|=t[j];
if(op[j]==)tmp^=t[j];
}
if(tmp&(<<i))ans|=(<<i),m-=(<<i);
}
printf("%d",ans);
return ;
}
bzoj3668 [Noi2014]起床困难综合症——贪心的更多相关文章
- BZOJ3668: [Noi2014]起床困难综合症(贪心 二进制)
Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2708 Solved: 1576[Submit][Status][Discuss] Descript ...
- [BZOJ3668] [Noi2014] 起床困难综合症 (贪心)
Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过研究相关文献,他找 ...
- BZOJ 3668: [Noi2014]起床困难综合症( 贪心 )
之前以为xor,or,and满足结合律...然后连样例都过不了 早上上体育课的时候突然想出来了...直接处理每一位是1,0的最后结果, 然后从高位到低位贪心就可以了... 滚去吃饭了.. ------ ...
- [Bzoj3668][Noi2014]起床困难综合症(位运算)
3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2612 Solved: 1500[Submit][St ...
- bzoj3668: [Noi2014]起床困难综合症
从高位到低位枚举期望的应该是ans最高位尽量取一.如果该数最高位为o的话能够取得1直接更新ans否则判断该位取1是否会爆m不会的话就加上. #include<cstdio> #includ ...
- bzoj千题计划238:bzoj3668: [Noi2014]起床困难综合症
http://www.lydsy.com/JudgeOnline/problem.php?id=3668 这..一位一位的来就好了呀 #include<cstdio> #include&l ...
- 【bzoj3668】[Noi2014]起床困难综合症 贪心
原文地址:http://www.cnblogs.com/GXZlegend/p/6797090.html 题目描述 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神 ...
- BZOJ3668 [Noi2014]起床困难综合症 【贪心】
题目 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过研究相关文献,他找到了该病的发病原因 ...
- [bzoj3668][Noi2014][起床困难综合症] (按位贪心)
Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过研究相关文献,他找 ...
随机推荐
- 1013. Battle Over Cities (25)(DFS遍历)
For example, if we have 3 cities and 2 highways connecting city1-city2 and city1-city3. Then if city ...
- Mysql的常见几种错误:1045,1044
Mysql的常见几种错误: 一.在进入 mysql 数据库时出错 # mysql -u root -p Enter password: ERROR 1045 (28000): Access den ...
- Flex嵌入HTML页面
这段时间一直在苦心研究Flex,今天突然想,我们平时都是把swf放到网页中,怎么才能把网页嵌入到Flex中呢?我查了一些资料,然后经过自己的不懈努力,终于搞定. 为了方便,写了个嵌入HTML页面的代理 ...
- hdu 1496 hash
hash?判重,是否一样?相等?等式!没有想到,这次题做玩后,学到了HASH这一功能!当数据量在数组允许大小范围内时候即可!判断等式俩边是否相等,从而获得解的个数!从复杂度,n*m*k****,降到 ...
- Spring实战Day2
创建对象之后如何体现对象之间的依赖? Spring容器负责创建Bean和依赖注入,那么Spring是怎么将Bean装配在一起的呢? Spring提供了三种方式装配机制 1.隐式的bean发现机制和自动 ...
- 检测socket链接是否断开
[解决方案] 1. 发送重试,由业务完成. 因为club_l5的send接口不会保留用户发送的内容,在recv失败的情况下,用户发送的数据已经丢失,所以只能由业务进行重试. 结论: ...
- MySQL中的数据类型的长度范围和显示宽度(转)
长度范围是随数据类型就已经是固定的值,而显示宽度与长度范围无关. 以下是每个整数类型的存储和范围(来自MySQL手册) 类型 字节 最小值 最大值 (带符号的/无符号的) (带符号的/无符号的) TI ...
- easyui combotree选项重复
现象 编辑,赋值出现重复选项 原因 值之间有空格,比如我取值是3, 4, 6要改成3,4,6 注意:数值之间的空格去掉了
- Weblogic性能优化(图解)
分类:Weblogic (2034) (1) 若是觉得对您有一丢丢的帮助,烦请顶一下哦,激励我码出更多的帖子,^_^谢谢! 1.数据源性能优化 1.1连接池参数配置 登录weblogic控制台,占击“ ...
- 搭建网络svn实战
工作中的问题(7) 转自:http://blog.csdn.net/xiaoting451292510/article/details/8562570 经常性我们和朋友写一些程序,大家在不同的城市确有 ...