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. rk3288 ov8858 camera移植

    平台:瑞芯的rk3288 SDK:4.4/5.0/5.1 作者:fulinux *****本文同意转载.只是请注明出处:http://blog.csdn.net/fulinus**** rk3288的 ...

  2. PHP开发Android应用程序(转)

    第一部分是指在Android系统的手机上直接写PHP脚本代码并立即运行:第二部分则继续讲解如何把写好的PHP脚本代码打包成akp安装文件. 首先,在手机上安装两个apk包. 一个是SL4A(Scrip ...

  3. C++11 tuple

    tuple元组定义了一个有固定数目元素的容器,其中的每个元素类型都可以不相同,这与其他容器有着本质的区别.是对pair的泛化. 首先来介绍元组的创建和元组元素的访问.通过make_tuple()创建元 ...

  4. unity3d 版本问题

    version: 4.2.1f4 1. 安装以后,不要启动,把exe拷贝覆盖. 2. 断网(重点,不断的话你试试就知道了) 3. 打开unity3d, 点击load License 4. 把ulf导入 ...

  5. Android 网络编程与通信协议

    大多数的Android应用程序都会使用HTTP协议来发送和接收网络数据,而Android中主要提供了两种方式来进行HTTP操作, HttpURLConnection和HttpClient.这两种方式都 ...

  6. CentOS6.3 Firefox安装FlashPlayer

    这段时间搞搞CentOS,我自己用的版本是CentOS6.3,基本上都差不多,过程都一样,主要说一下步骤 1.从Adoble官网下载FlashPlayer插件,下载地址:http://get.adob ...

  7. Linux系统最小化安装之后的系统基础环境安装以及内核优化脚本

    #!/bin/bash #添加epel和rpmforge的外部yum扩展源 cd /usr/local/src wget http://mirrors.ustc.edu.cn/fedora/epel/ ...

  8. Try,Catch,Finally三块中如果有Return是怎么个运行顺序

    今天看一个Java SSH的面试题,题目大概意思是:try.catch中存在return语句,还会执行finally块吗?如果执行,是return先执行还是finally先执行?如果有多个return ...

  9. 微信企业号开发遇到的bug

    a. 微信嵌入视频: a.1 视频元素播放时层级默认被顶置 a.1 视频播放后窗口无法通过css改变层级 a.2 视频播放后窗口无法通过css隐藏 解决方案:做个虚假的播放窗口,点击播放窗口(虚假的) ...

  10. Ubuntu 13.10 Mono安装历程

    这两天捣鼓一下Mono,记录一下自己所遇到的问题,已经解决办法 首先,先打开gnome-terminal 1. 先更新的一下系统 sudo apt-get update sudo apt-get up ...