NOI2014 起床困难综合症 day1t1
感觉NOI题在向简单方向发展,或者说明年会难到暴呢?
直接模拟啊,枚举每个二进制数位,看经过变换之后是否为1及为1的条件即可。\( O(nlogm)\)。
然后。。。跪了一个点,第五个死活比标准大一。。。
补码表示真dt,我会告诉你 1 >> 32 = 1吗(你肯定知道)?是我太傻逼了。
//{HEADS
#define FILE_IN_OUT
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <map>
#include <set>
#include <bitset>
#include <complex>
#include <string>
#define REP(i, j) for (int i = 1; i <= j; ++i)
#define REPI(i, j, k) for (int i = j; i <= k; ++i)
#define REPD(i, j) for (int i = j; 0 < i; --i)
#define STLR(i, con) for (int i = 0, sz = con.size(); i < sz; ++i)
#define STLRD(i, con) for (int i = con.size() - 1; 0 <= i; --i)
#define CLR(s) memset(s, 0, sizeof s)
#define SET(s, v) memset(s, v, sizeof s)
#define mp make_pair
#define pb push_back
#define PL(k, n) for (int i = 1; i <= n; ++i) { cout << k[i] << ' '; } cout << endl
#define PS(k) STLR(i, k) { cout << k[i] << ' '; } cout << endl
using namespace std;
typedef long long LL;
typedef double DB;
typedef pair<int, int> i_pair;
const int INF = 0x3f3f3f3f;
//}
const int maxn = 1e5 + ;
int ope[maxn], n, m;
bitset<> t[maxn];
char op[];
int me[][];
int main() {
freopen("sleep.in", "r", stdin);
freopen("sleep.out", "w", stdout);
scanf("%d%d", &n, &m);
for(int i = ; i <= n; ++i) {
int tmp;
scanf("%s %d", op, &tmp);
t[i] = tmp;
// printf("%s\n", t[i].to_string().c_str());
if(strcmp(op, "OR") == ) {
ope[i] = ;
} else if(strcmp(op, "AND") == ) {
ope[i] = ;
} else {
ope[i] = ;
}
}
for(int i = ; i <= ; ++i) {
int init = ;
for(int j = ; j <= n; ++j) {
if(init == ) {
if(ope[j] == ) {
init = ;
} else if(ope[j] == ) {
if(t[j][i] == ) {
init = ;
} else if(t[j][i] == ) {
init = ;
}
} else {
if(t[j][i] == ) {
init = ;
} else if(t[j][i] == ) {
init = ;
}
}
} else if(init == ) {
if(ope[j] == ) {
if(t[j][i] == ) {
init = ;
}
} else if(ope[j] == ) {
if(t[j][i] == ) {
init = ;
} else if(t[j][i] == ) {
init = ;
}
} else {
if(t[j][i] == ) {
init = ;
} else if(t[j][i] == ) {
init = ;
}
}
}
}
me[i][] = init;
init = ;
for(int j = ; j <= n; ++j) {
if(init == ) {
if(ope[j] == ) {
init = ;
} else if(ope[j] == ) {
if(t[j][i] == ) {
init = ;
} else if(t[j][i] == ) {
init = ;
}
} else {
if(t[j][i] == ) {
init = ;
} else if(t[j][i] == ) {
init = ;
}
}
} else if(init == ) {
if(ope[j] == ) {
if(t[j][i] == ) {
init = ;
}
} else if(ope[j] == ) {
if(t[j][i] == ) {
init = ;
} else if(t[j][i] == ) {
init = ;
}
} else {
if(t[j][i] == ) {
init = ;
} else if(t[j][i] == ) {
init = ;
}
}
}
}
me[i][] = init;
}
int ans = ;
int bit = ;
/* 卧槽!!吧bit改成32就wa了一个点
* 出题人真良心没卡我
* 不然就10分了QAQ
* */
bool free_flag = false;
for(int i = bit; <= i; --i) {
if(free_flag) {
if(me[i][] == || me[i][] == ) {
ans += ( << i);
}
continue;
}
if(me[i][] == ) {
ans += ( << i);
if((m >> i) & ) {
free_flag = true;
}
} else if(me[i][] == ) {
if((m >> i) & ) {
ans += ( << i);
}
} else if((m >> i) & ) {
free_flag = true;
}
}
printf("%d\n", ans);
fclose(stdin);
fclose(stdout);
return ;
}
巨丑无比的代码
NOI2014 起床困难综合症 day1t1的更多相关文章
- bzoj3668: [Noi2014]起床困难综合症
从高位到低位枚举期望的应该是ans最高位尽量取一.如果该数最高位为o的话能够取得1直接更新ans否则判断该位取1是否会爆m不会的话就加上. #include<cstdio> #includ ...
- NOI2014 起床困难综合症
3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 225 Solved: 153[Submit][Stat ...
- BZOJ 3668: [Noi2014]起床困难综合症( 贪心 )
之前以为xor,or,and满足结合律...然后连样例都过不了 早上上体育课的时候突然想出来了...直接处理每一位是1,0的最后结果, 然后从高位到低位贪心就可以了... 滚去吃饭了.. ------ ...
- BZOJ 3668: [Noi2014]起床困难综合症【贪心】
3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2326 Solved: 1305[Submit][St ...
- Luogu 睡觉困难综合征 ([NOI2014]起床困难综合症)
一.[NOI2014]起床困难综合症 题目描述 网址:https://daniu.luogu.org/problemnew/show/2114 大意: 有一条链,链上每一个节点包含一个位运算f 与 一 ...
- P2114 [NOI2014]起床困难综合症(二进制)
P2114 [NOI2014]起床困难综合症 我们开始设俩数,一个二进制表示全是1,另一个全是0(就是2147483647 和 0 辣) 蓝后跑一遍门 于是最后有4种情况 1->0,1-> ...
- 洛谷P2114 [NOI2014]起床困难综合症
P2114 [NOI2014]起床困难综合症 题目描述 21世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm一直坚持与起床困难综合症作 ...
- bzoj千题计划238:bzoj3668: [Noi2014]起床困难综合症
http://www.lydsy.com/JudgeOnline/problem.php?id=3668 这..一位一位的来就好了呀 #include<cstdio> #include&l ...
- [NOI2014]起床困难综合症(二进制+贪心)
题目 [NOI2014]起床困难综合症 做法 先用全\(0\)和全\(1\)去运行一下,再在满足\(m\)的限制下,贪心地从高位到低位选择即可
随机推荐
- solr单元测试
package com.taotao.rest.solr; import java.io.IOException; import org.apache.solr.client.solrj.SolrQu ...
- Python中的结构化数据分析利器-Pandas简介
Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发tea ...
- Samba共享传输大文件(ex:1G)失败的问题
1:问题描述 1.1 基本信息 遇见这样一个bug,路由器有USB share的功能,可将U盘内的文件通过samba和LAN端PC机中文件进行共享,测试发现小文件可正常共享,一旦文件大了(比如1G左右 ...
- 清除windows系统垃圾文件简易脚本(bat)
@echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %sy ...
- B树及其变种
B树是为磁盘或其他直接存取的辅助存储设备而设计的一种平衡搜索树.B树类似于红黑树,但它们在降低磁盘I/O操场数方面要更好一些.许多数据库系统使用B树或B树的变种来存储信息. 介绍 常见的动态查找树包括 ...
- [洛谷P3628] [APIO2010]特别行动队
洛谷题目链接:[APIO2010]特别行动队 题目描述 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 \(n\) 编号,要将他们拆分 成若干特别行动队调入战场.出于默契的考虑,同一支特别行动 ...
- UIPageControl---iOS-Apple苹果官方文档翻译
本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 //转载请注明出处--本文永久链接:http://www.cnblogs.com/Ch ...
- Winform Socket通信
Socket相关概念[端口] 在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务.每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务(应 ...
- ES6数组去重及ES5数组去重方法
ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如: let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3]; ...
- GPU硬件加速
现代浏览器大都可以利用GPU来加速页面渲染.每个人都痴迷于60桢每秒的顺滑动画.在GPU的众多特性之中,它可以存储一定数量的纹理(一个矩形的像素点集合)并且高效地操作这些纹理(比如进行特定的移动.缩放 ...