jsoi2010满汉全席的不同解法及程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
jsoi2010满汉全席的不同解法及程序

满汉全席feast (feast.pas/c/cpp) 【问题描述 】 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料通过满族或是汉族的料理方式,呈现在数量繁多的菜色之中。由于菜色众多而繁杂,只有极少数博学多闻、技艺高超的厨师能够做出满汉全席,而能够烹饪出经过专家认证的满汉全席,也是中国厨师最大的荣誉之一。 世界满汉全席协会是由能够料理满汉全席的专家厨师们所组成,而他们之间还细分为许多不同等级的厨师。为了招收新进的厨师进入世界满汉全席协会,将于近日举办满汉全席大赛,协会派出许多会员当作评委,为的就是要在参赛的厨师之中,找到满汉料理界的明日之星。 每位参赛的选手可以得到 n 种材料,选手可以自由选择用满式或是汉式料理将材料做成菜肴。 大赛共有 m 位评委把关。每一位评委对于满汉全席有各自独特的见解,但基本的见解是:要有两样菜色作为满汉全席的标志。如某评委认为,如果没有汉式东坡肉及满式的涮羊肉锅,就不能算是满汉全席。 为了避免过于有主见的评审意见,大会规定,对每一位参赛者来说,一个评委除非是在认为必备的两样菜色都没有做出来的状况下,才能淘汰他,否则就不能淘汰他。换句话说,参赛者在这两种材料的做法中,只要其中一个能符合评委的喜好,即可通过该评委的审查。例如,当材料中有猪肉、羊肉和牛肉时,有四位评委的喜好如下表所示: 评委一 评委二 评委三 评委四 满式牛肉 满式猪肉 汉式牛肉 汉式牛肉 汉式猪肉 满式羊肉 汉式猪肉 满式羊肉 如参赛者甲做出满式猪肉、满式羊肉和满式牛肉料理,他将无法满足评委三的要求,无法通过评审。而参赛者乙做出汉式猪肉、满式羊肉和满式牛肉料理,就可以满足所有评委的要求。 但是,大会后来发现,在这样的制度下,如果材料选择跟派出的评委没有特别安排好的话,所有的参赛者最多只能通过部分(而不是全部)评委的审查,所以可能会发生没有一个人通过考核的情形。例如,当有四位评委的喜好如下表所示时,则不论参赛者采取什么样的做法,都不可能通过所有评委的考核: 评委一 评委二 评委三 评委四 满式羊肉 满式猪肉 汉式羊肉 汉式羊肉 汉式猪肉 满式羊肉 汉式猪肉 满式猪肉 所以,大会希望你写一个程序来判断:对所选出的 m 位评委,会不会发生没有人能通过考核的窘境,以便帮助组织合适的评审团。 【输入】 测试文件的第一行包含一个数字 K,代表测试文件包含了K 组测试数据。 每一组测试数据的第一行包含两个数字n 和m(n≤100,m≤1000),代表有n 种材料,m 位评委。为方便起见,材料舍弃中文名称而给予编号,编号分别从1 到n。 接下的m 行,每行都代表对应的评委所拥有的两个喜好,每个喜好由一个英文字母和一个数字代表,如m1 代表这个评委喜欢第 1 材料通过满式料理做出来的菜,而h2 代表这个评委喜欢第 2 材料通过汉式料理做出来的菜。 每个测试文件不会有超过 50 组的测试数据。 【输出】 对每一组测试数据,输出一行对应的答案:如果不会发生没有人能通过考核的窘境,输出 GOOD,否则输出 BAD(大写字母)。 【样例输入1】 2 3 4 m3 h1 m1 m2 h1 h3 h3 m2 2 4 h1 m2 m2 m1 h1 h2 m1 h2 【样例输出1】 GOOD BAD 【样例输入2】 2 3 3 h1 m3 h3 m2 m3 m1 3 3 h1 m2 h2 m3 h3 m1 【样例输入2】 GOOD GOOD type bt=record lowlink,inde:longint; end; var nod:array[0..10000] of bt; stack,f:array[0..10000] of longint; a:array[0..1000,0..1000]of longint; k,n,m,i,p,q,ind,top,quan1,quan2,num:longint; ch1,ch2,ch3:char; v,v1:array[0..10000] of boolean; function min(a,b:longint):longint; begin if ab then exit(b); exit(a); end; procedure tarjan(i:longint); //tarjan求强连通分量 var j:longint; begin inc(ind); nod[i].inde:=ind; nod[i].lowlink:=ind; inc(top); stack[top]:=i; v[i]:=true; v1[i]:=true; for j:=1 to 2*n do if a[i,j]=1 then

文档评论(0)

zhengshumian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档