九度OJ1486 /POJ 1029/2012北京大学研究生复试上机
wa到死!wa到死!这是一个看着简单,坑及其多的题!
坑一:POJ上是单组输入,九度上是多组输入,妈蛋要是研究生复试遇到这种大坑肯定死掉啊!而且对于codeforces比较习惯的
同学肯定会觉得巨坑无比。
坑二:九度OJ上绝对有多余的空字符,什么getchar()都不要用,用cin输入跳过空格吧!POJ上是没问题的!
坑三:有很多特殊情况,如果算法不好的话,wa的概率是很大的,比如真的false coin没有出现在不等式中
先说一些共识:
(1)如果出现的是“=”式子,那么两边肯定都是合格的coin,而且false coin肯定不在这个等式里面;
(2)如果出现了不等式,即“<"或者”>"式子,那么可以肯定,在这些式子中肯定都存在一个false coin
(3)如果,一个硬币是false coin,在每个它出现的式子里,都是不等式,而且,要么它总在轻的一方,
要么它总在重的一方但是这个题其坑无比的是,不能从这个角度想,因为给的数据可能根本没有逻
辑,就是说,可能会有自相矛盾的数据,在这种情况下,他的逆命题有可能是真的,首先我们把出
现在等式里的数字排除掉即如果每个不等式里某个数字都出现了,即出现次数等于不等式的个数并
且它总是在重的一方,或者总是在轻的一方,那我们说,这个数字极有可能是false coin,但是还
要统计一下,这样的数字是不是只有一个,如果有两个,或者没有,都没办法判断!
我的思路:对于能通过等式判断出相等的元素,用h【i】=1标记上,意味着false coin绝对不可能是这里面的数字,
对于不等式A[i] < B[i],设置一个light[i]数组,和一个heavy[i]数组,如果一个数出现在了轻的一边,就让light[i]++;
如果出现在了重的一边,就让heavy[i]++;对于一个false coin,要么他的heavy值等于不等式的个数cas,要么他的light值
等于cas,然后注意不要让ans重复就可以了。
#include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f const int maxn = 1000+5; int n,k,p; int L[maxn],R[maxn]; int light[maxn],heavy[maxn]; int h[maxn]; char opt; int cas;int main() {while(cin >> n >> k){memset(light,0,sizeof(light));memset(heavy,0,sizeof(heavy));memset(h,0,sizeof(h));cas = 0;for(int t = 1;t <= k; ++t){cin >> p;for(int i = 1; i <= p; ++i)cin >> L[i];for(int i = 1; i <= p; ++i)cin >> R[i];cin >> opt;if(opt == '='){for(int i = 1; i <= p; ++i)h[L[i]] = h[R[i]] = 1;}else if(opt == '<'){cas++;for(int i = 1; i <= p; ++i){light[L[i]]++;heavy[R[i]]++;}}else{cas++;for(int i = 1; i <= p; ++i){heavy[L[i]]++;light[R[i]]++;}}}int cnt = 0,ans;for(int i = 1; i <= n; ++i){if(h[i]==0&&(light[i]==cas||heavy[i]==cas)){ans = i;cnt++;}}if(cnt!=1) printf("0\n");else printf("%d\n", ans);} }
一些帮助大家debug的数据:
input: 3 2 1 1 2 < 1 2 3 <3 2 1 1 2 > 1 1 3 >5 1 2 1 2 3 4 =4 3 2 1 2 3 4 < 2 1 3 2 4 < 1 2 4 =5 3 2 1 3 2 4 > 2 3 5 2 4 > 1 1 4 >5 3 2 1 3 2 4 > 2 3 5 2 4 > 1 1 4 =output:0 1 5 1 4 0
转载于:https://www.cnblogs.com/Norlan/p/5422423.html
九度OJ1486 /POJ 1029/2012北京大学研究生复试上机相关推荐
- 浙大计算机复试上机成绩,浙大计算机研究生复试上机考试-2006年
发指啊... 第一次快写完了结果傲游挂了... ...直接全部重来啊... ...OMG 这套比2005年的稍难, 不过基本都是小模拟啦, 对ACM菜鸟来说都是大水题~~ 1. 还是A+B 注意题目第 ...
- 北京大学计算机学院复试名单2021,北京大学研究生招生简章2021(北京大学研究生复试名单)...
北大的研究生教育,从1917年的沙滩红楼研究所,到今天的湖滨研究生院,已经进行了近百年.她见证并经历了中国研究生教育从诞生到发展.调整.规范.扩张的全过程.北京大学的研究生教育可以追溯到20世纪初.1 ...
- 计算机学院机考,东华大学2015年计算机学院研究生复试上机考真题.docx
2015年硕士学位研究生招生复试笔试试题 考试科目:C语言与数据结构算法上机测试 考试时间120分钟 注意事项: 1.源程序都在D:\TEST文件夹下,请先将该"test文件夹改名为 准考证 ...
- 计算机学院机考,东华大学计算机学院研究生复试上机考真题.doc
2015年硕士学位研究生招生复试笔试试题 考试科目: C语言与数据结构算法上机测试 考试时间120分钟 注意事项: 1.源程序都在D:\TEST文件夹下,请先将该"TEST"文件夹 ...
- 已经有211大学发布计算机专业,研究生复试上机考试说明
计算机考研复试中,很多大学都会选择机试作为考试形式.机试即是上机考试,在电脑上完成实体,一般都是编写程序,使用OJ系统判断结果. 列举几个常见的OJ,其他OJ还有很多很多,可以去网上找一下. Virt ...
- 华东师范2018研究生复试上机题题解
3533. 庙会 假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队.跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴.规定每个舞曲能有一对跳舞者.若两队初始人数不相同,则较长的那一队中未配 ...
- 1237-简单计算器【浙大计算机研究生复试上机考试-2006年】
Problem Description: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input: 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个 ...
- 动态规划 背包问题小结 0-1背包(采药 九度第101题) 完全背包(Piggy-Bank POJ 1384) 多重背包(珍惜现在,感恩生活 九度第103题)
本小结介绍0-1背包.完全背包以及多重背包问题 记忆要点: 0-1背包:二维数组情况下,顺序遍历体积或者倒序均可以 降维情况下需倒序遍历体积 完全背包:数组降维+顺序遍历 ...
- Freckles - 九度 OJ 1144
Freckles - 九度 OJ 1144 题目 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: In an episode of the Dick Van Dyke show, l ...
最新文章
- hash 值重复_程序员:判断对象是否重复,不重写equals和hashcode不行吗?
- 干货 | 只有100个标记数据,如何精确分类400万用户评论?
- GraphQL学习过程应该是这样的
- android 键盘搜索按钮不收起键盘,android EditText 实现搜索框点击搜索隐藏键盘
- java用什么编译器_用大白话告诉你,Java到底是什么
- 面向对象 - 1.面向过程/2.面向对象/3.如何使用类/4.__init__方法/5.属性查找/6.补充知识/7.可扩展性高...
- 图网络中的社群及社群发现算法
- Product description search in opportunity line item
- asp.net mvc 地址栏传输信息报错:window.location.pathname
- c语言除法的编译,怎样代替除法指令
- QTableView的表格项中加入图标的方法
- L1-040 最萌情侣身高差
- springMVC Model ModelMap 和 ModelAndView的区别
- 【Matlab故障诊断分析】BP神经网络三相逆变器故障诊断研究【含源码 1736期】
- 冬季华丽回潮 试着搭配毛茸茸皮草
- 自定义ckeditor图片上传插件
- Matlab Robitic Toolbox学习笔记Day2
- 解决UIScrollView截获touch事件的一个极其简单有效的办法
- linux java.library.path,设置java.library.path的值(Mac/Linux/Windows)
- 拼图软件那个好用?好用的拼图软件分享
热门文章
- c语言main函数的参数argc,argv说明
- Ph.D Grind 阅读感想 By 张雄
- creo减速器建模实例_3.16减速器箱体附件建模
- C++ 运算符优先级
- 开源GIS库GDAL/GEOS在Windows下的编译与 Codeblocks配置
- datetime建立索引有用吗_超全的数据库建表、SQL、索引规范
- 快速获取csv数量_【数量技术宅|数据爬虫系列分享】如何获取免费的数字货币历史数据...
- 如何利用火狐获取网址中的提交链接
- 使用dwebsocket在Django中使用Websocket
- 【前端面试题】关于一些js的一些面试题(金融行业),我和面试官扯了三个小时