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 = +;
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,,sizeof(light));
memset(heavy,,sizeof(heavy));
memset(h,,sizeof(h));
cas = ;
for(int t = ;t <= k; ++t){
cin >> p;
for(int i = ; i <= p; ++i)
cin >> L[i];
for(int i = ; i <= p; ++i)
cin >> R[i];
cin >> opt;
if(opt == '='){
for(int i = ; i <= p; ++i)
h[L[i]] = h[R[i]] = ;
}
else if(opt == '<'){
cas++;
for(int i = ; i <= p; ++i){
light[L[i]]++;
heavy[R[i]]++;
}
}
else{
cas++;
for(int i = ; i <= p; ++i){
heavy[L[i]]++;
light[R[i]]++;
}
}
}
int cnt = ,ans;
for(int i = ; i <= n; ++i)
{
if(h[i]==&&(light[i]==cas||heavy[i]==cas)){
ans = i;
cnt++;
}
}
if(cnt!=) 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

九度OJ1486 /POJ 1029/2012北京大学研究生复试上机的更多相关文章

  1. HDU 1234 (浙大计算机研究生复试上机考试-2005年) 开门人和关门人 (水)

    开门人和关门人 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  2. ZOJ问题(2010浙江大学研究生复试上机题目[找规律] hdoj 3788)

    ZOJ问题 pid=3788">点击打开链接 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  3. 九度oj 1468 Sharing 2012年浙江大学计算机及软件工程研究生机试真题

    题目1468:Sharing 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:2687 解决:550 题目描述: To store English words, one method is ...

  4. 九度oj 题目1029:魔咒词典

    题目描述:     哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮 ...

  5. 九度 OJ1008 hdu 3790

    #include<stdio.h> #include<string.h> struct node { int d; int p; }g[][]; #define inf 0x3 ...

  6. 九度OJ 1150:Counterfeit Dollar(假美元) (分析、检验)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:485 解决:215 题目描述: Sally Jones has a dozen Voyageur silver dollars. Howev ...

  7. 九度OJ 1142:Biorhythms(生理周期) (中国剩余定理)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:266 解决:189 题目描述: Some people believe that there are three cycles in a p ...

  8. 九度oj 题目1087:约数的个数

    题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...

  9. 九度OJ 1502 最大值最小化(JAVA)

    题目1502:最大值最小化(二分答案) 九度OJ Java import java.util.Scanner; public class Main { public static int max(in ...

随机推荐

  1. MySQL创建新用户、增加账户的2种方法及使用实例

    可以用两种方式创建MySQL账户:1.使用GRANT语句2.直接操作MySQL授权表最好的方法是使用GRANT语句,因为这样更精确,错误少.创建超级用户: mysql> GRANT ALL PR ...

  2. jQuery源代码 解析一 工具方法

    1. 外层沙箱以及命名空间$ 几乎稍微有点经验前端人员都这么做,为了避免声明了一些全局变量而污染,把代码放在一个"沙箱执行",然后在暴露出命名空间(可以为API,函数,对象): 2 ...

  3. Linux下multipath多路径配置

    一.什么是多路径 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系.而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存 储通过了光纤交换机或者多块网卡及IP ...

  4. csms发布步骤

    1.wcf发布 通过点击 CSMS2.Application,右键发布按钮,将文件拷贝 2.打包文件 CSMS2.Resources 中 update.config 修改为对应 ServerUrl地址 ...

  5. 【转】常用背景色RGB数值

    [转自]http://blog.sina.com.cn/s/blog_8fc890a201013z8h.html

  6. Android触摸事件的分发机制

    ---恢复内容开始--- 一.MotionEvent : ACTION_DOWN(下按事件).ACTION_UP(松开事件).ACTION_MOVE(移动事件) 二.三大函数 1.dispatchTo ...

  7. 使用 ADD-ON SDK 开发 基于 Html JQuery 和 CSS 的 firefox 插件入门教程1: 创建一个简单的 Add-on

    [本文转载自http://sixpoint.me/942/implementing-simple-addon/] 实现一个简单的插件 教程的这个部分带你使用 SDK 来实现, 运行并打包一个插件. 这 ...

  8. JavaScript escape() 函数

    JavaScript escape() 函数 JavaScript 全局对象 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(str ...

  9. java学习笔记(11) —— Struts2与Spring的整合

    1.右键 项目名称 —— MyEclipse —— Add Spring Capabilities 2.选取 Copy checked Library contents to project fold ...

  10. jquery上传控件个人使用

    转了一篇jquery的上传控件使用博文,但是,经过测试貌似不行,自己研究了一下,效果实现.记下,以后使用. 下载“Uploadify”,官方版本为php的,很多文件不需要,删除带.php的文件. &l ...