P2114 [NOI2014]起床困难综合症 我们开始设俩数,一个二进制表示全是1,另一个全是0(就是2147483647 和 0 辣) 蓝后跑一遍门 于是最后有4种情况 1->0,1->1,0->1,0->0 于是我们最后贪心取一下就好辣 #include<iostream> #include<cstdio> #include<cstring> using namespace std; ,R=,ans; ]; int main(){ scanf…
题面 传送门:https://www.luogu.org/problemnew/show/P2114 Solution 一道很有意思的位运算题. 要做这一题,我们首先得了解一个很重要的特点 位运算过程中每一位都不会进位 有了这个特点,我们可以考虑一个很妙的做法 我们可以把每一扇门的那个数转为2进制 就可以在O(n) 的时间内找到这一位以1或0为初始数,过完所有门后的这位数的结果 显然,结果为1是对答案有贡献的 然后,我们从后往前,一位一位枚举看一下初始值是填1还是填0 然后就OjbK了 时间复杂…
P2114 [NOI2014]起床困难综合症 题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作斗争.通过研究相关文献,他找到了该病的发病原因: 在深邃的太平洋海底中,出现了一条名为drd的巨龙,它掌握着睡眠之精髓,能随意延长大家的睡眠时间. 正是由于drd的活动,起床困难综合症愈演愈烈, 以惊人的速度在世界上传播.为了彻底消灭这种病,atm决定前往海底,消灭这条恶龙.历经千辛万苦,atm终于…
P2114 [NOI2014]起床困难综合症 题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作斗争.通过研究相关文献,他找到了该病的发病原因: 在深邃的太平洋海底中,出现了一条名为drd的巨龙,它掌握着睡眠之精髓,能随意延长大家的睡眠时间. 正是由于drd的活动,起床困难综合症愈演愈烈, 以惊人的速度在世界上传播.为了彻底消灭这种病,atm决定前往海底,消灭这条恶龙.历经千辛万苦,atm终于…
题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作斗争.通过研究相关文献,他找到了该病的发病原因: 在深邃的太平洋海底中,出现了一条名为drd的巨龙,它掌握着睡眠之精髓,能随意延长大家的睡眠时间. 正是由于drd的活动,起床困难综合症愈演愈烈, 以惊人的速度在世界上传播.为了彻底消灭这种病,atm决定前往海底,消灭这条恶龙.历经千辛万苦,atm终于来到了drd所在的地方,准备与其展开艰苦卓绝的…
题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作斗争.通过研究相关文献,他找到了该病的发病原因: 在深邃的太平洋海底中,出现了一条名为drd的巨龙,它掌握着睡眠之精髓,能随意延长大家的睡眠时间. 正是由于drd的活动,起床困难综合症愈演愈烈, 以惊人的速度在世界上传播.为了彻底消灭这种病,atm决定前往海底,消灭这条恶龙.历经千辛万苦,atm终于来到了drd所在的地方,准备与其展开艰苦卓绝的…
起床困难综合症[二进制运算+优化] 题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作斗争.通过研究相关文献,他找到了该病的发病原因: 在深邃的太平洋海底中,出现了一条名为drd的巨龙,它掌握着睡眠之精髓,能随意延长大家的睡眠时间. 正是由于drd的活动,起床困难综合症愈演愈烈, 以惊人的速度在世界上传播.为了彻底消灭这种病,atm决定前往海底,消灭这条恶龙.历经千辛万苦,atm终于来到了dr…
建议去uoj那里去测,数据比较强 位运算的题目,就得一位一位的分开考虑 然后枚举初始值的最高位是0 是1 的最终攻击 (二进制内)最高位是1肯定比次位是1次次位是1次次次位是1···的大吧,显然 然后贪心O(N)就能过去啦 感觉自己是学傻了,看到n=5w就写了个nlog 情况好像有某一位的初始值是0最终那一位是1,初始值是1,最终那一位也是1的,所以要注意一下 代码: (咦,好像别人家的代码呀) #include <iostream> #include <cstdio> #incl…
题目传送门 所以NOI的题现在简单惹? 30分做法:枚举开始的权值,n²过掉. 100分做法:竟然是贪心qwq.因为我们的计算背景是二进制下,所以我们贪心地想让每一位都是1.我们现在需要解决的问题,就是找到一个开始的攻击值.所以我们可以按位检查一下当前位是否可以为1,能不能更新答案. Code #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; ll lmax(ll a,ll…
#include<iostream> #include<cstdio> using namespace std; ; ]; long long n,m; long long t; ,ans0=,ans1=0x7fffffff; int main() { //freopen("testdata.in","r",stdin); scanf("%lld%lld",&n,&m); ;i<=n;i++) { s…