UVA12394/HDU4194 Peer Review 模拟

原创 2012年08月04日 20:18:51

http://acm.hdu.edu.cn/showproblem.php?pid=4194

题目大意:就是一道英文题,题意很纠结。输入一个K和N,K是没人审核的paper数和每个paper必须刚好被K个人审核,N是paper数。

有problem的:1.被1个人审多次。2.被同组织的审。3.被审次数大于K或者小于K。

解题思路:模拟

代码:

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <string>
#include <algorithm>
#define MAXN 1010
#define INF 0x7fffffff
#define eps 1e-10
#define MAX(x,y) ((x)>(y)? (x):(y))
#define MIN(x,y) ((x)<(y)? (x):(y))
#define MEM(a) (memset((a),0,sizeof(a)))
#define FRE freopen("input.txt","r",stdin)
using namespace std;


string name[MAXN];
int num[MAXN],k,n;
vector <int> review[MAXN];
bool ok[MAXN];

int main()
{
    while(scanf("%d%d",&k,&n) && n)
    {
        memset(ok,0,sizeof(ok));
        memset(num,0,sizeof(num));
        for(int i=1;i<=n;i++)
            review[i].clear();
        for(int i=1;i<=n;i++)
        {
            char temp[20];
            scanf("%s",temp);
            name[i]=temp;
            for(int j=0;j<k;j++)
            {
                int tmp;
                scanf("%d",&tmp);
                review[i].push_back(tmp);
            }
        }
        for(int i=1;i<=n;i++)
            sort(review[i].begin(),review[i].end());
        for(int i=1;i<=n;i++)
            for(int j=0;j<k;j++)
            {
                if(j!=0 && (review[i][j]==review[i][j-1])) //重复票判problem
                {
                    ok[review[i][j]]=1;
                    continue;
                }
                if(name[i]==name[review[i][j]]) //同组织判problem
                    ok[review[i][j]]=1;
                else
                    num[review[i][j]]+=1; 
            }
        int ans=0;
        for(int i=1;i<=n;i++)
            if(ok[i]) ans++;
            else
            {
                if(num[i]!=k) ans++; 
            }
        if(ans==0)
            printf("NO PROBLEMS FOUND\n");
        else
            printf("%d PROBLEMS FOUND\n",ans);
    }
    return 0;
}


相关文章推荐

HDU 4194 Peer Review

Description For scienti c conferences, scientists submit papers presenting their ideas, and then ...

peer review table

  • 2013年12月03日 10:31
  • 64KB
  • 下载

Best Practise for Peer Code Review

  • 2010年12月28日 14:52
  • 373KB
  • 下载

UVALive3638 UVA12100 POJ3125 HDU1972 Printer Queue【队列+模拟】

Printer Queue Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5332   Accepted: 27...

Best kept secrets of peer code review

  • 2009年07月15日 10:56
  • 2.05MB
  • 下载

best kept secrets of peer code review

  • 2013年09月10日 08:10
  • 4.41MB
  • 下载

UVa 1589 Xiangqi(模拟 HDU4121)

题意  给你一个黑方被将军的象棋残局  判断红方是否已经把黑方将死 模拟题  注意细节就行了  看黑方的将是否四个方向都不能走 #include #include using namespace ...
  • acvay
  • acvay
  • 2015年01月20日 14:07
  • 2075

UVA101 HDU1612 POJ1208 The Blocks Problem【模拟】

问题链接:UVA101 HDU1612 POJ1208 The Blocks Problem。 问题简述:参见上述链接。 问题分析:这是一个模拟题,程序过程都是套路。 程序说明: 程序...

【jzoj4194】【Banner】【容斥原理】

题目大意给出一个(n+1)*(m+1)的点阵,求有多少种选起点终点(无序点对)使得连线除起点终点外不经过其他点,且长度在给定区间内。解题思路观察可知枚举横向x纵向y长度即可求出长度,gcd(x,y)=...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UVA12394/HDU4194 Peer Review 模拟
举报原因:
原因补充:

(最多只允许输入30个字)