题目简要

题目意思很简单每个测试都由原题目在第一行,然后后面的都是去猜的答案,如果猜测的位置正确那么输出的结果的数对里面的第一个数就加一,如果仅答案正确(原题目里有这个数,但是位置不一样)那么就在输出数对的第二个数加一。

并且需要注意已经判断过的数是不能再判断第二次的。

例如以下的样例

1 3 5 5

1 1 2 3

4 3 3 5

1 3 5 5是原来的题目,对于1 1 2 3来说只有第一个1是位置正确并且答案也对的,那么经过计算后原题目的1和现在猜测的1都去掉然后变成了 3 5 5 和1 2 3然后发现还有一个最后的3是答案正确但是位置不对,所以第一个输出的数对是(1,1)以此类推第二个是猜测的第二个数3和第四个数5满足第一个条件所以输出的答案是(2,0)

如何实现

首先第一个条件很好判断啊,直接把原来的题目和输出的答案进行对照就行了。

第二个条件可能难一点,我的想法也是直接判断,写两个for然后外面for是代表原题目的每个数,里面的for是答案的每个数一一对应如果有一样的,那么第二个条件加一

对于去除数据来说我的想法是直接开两个bk就行了,bk是1的时候说明这个数已经用过了,每次先判断一下bk就行了。

然后就是注意先判断第一个条件 还有的就是注意输出格式。

我的代码

#include <iostream>
#include <cstring>
//#include "fp.h"
using namespace std;
int num[1100];
int num2[1100];
int bk1[1100];
int bk2[1100];
struct node
{
int x,y;
}p[1100];
main()
{
//fop();
int n;
int nnum=0;
while(cin>>n&&n)
{
for(int i=0;i<n;i++)
scanf("%d",&num[i]);
int jk=0;
while(1)
{
int ans1,ans2;
ans1=ans2=0;
memset(bk1,0,sizeof(bk1));
memset(bk2,0,sizeof(bk2));
for(int j=0;j<n;j++)
scanf("%d",&num2[j]);
if(num2[0]==0)
break;
for(int j=0;j<n;j++)
if(num[j]==num2[j])
{
ans1++;bk1[j]=bk2[j]=1;
}
for(int j=0;j<n;j++)
for(int k=0;k<n;k++)
if(!bk1[j]&&!bk2[k])
{
if(num[j]==num2[k])
{
ans2++;bk1[j]=bk2[k]=1;
}
}
//cout<<ans1<<" "<<ans2<<endl;
p[jk].x=ans1;p[jk].y=ans2;
//cout<<p[jk].x<<" "<<p[jk].y<<endl;
jk++;
}
printf("Game %d:\n",++nnum);
for(int j=0;j<jk;j++)
printf(" (%d,%d)\n",p[j].x,p[j].y);
}
}

uva340 Master-Mind Hints (UVA - 340)的更多相关文章

  1. 猜数字游戏的提示(Master-Mind Hints, UVa 340)

    实现一个经典"猜数字"游戏. 给定答案序列和用户猜的序列,统计有多少数字位置正确 (A),有多少数字在两个序列都出现过但位置不对(B). 输入包含多组数据.每组输入第一行为序列长度 ...

  2. UVa 340 Master-Mind Hints (优化查找&复制数组)

    340 - Master-Mind Hints Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_on ...

  3. UVa 340 Master-Mind Hints

    蛋疼的题目描述,看了好长好长时间才看懂,题目本身是很简单的. Designer给出一串长度为N的Code,Breaker用Guess来破译. 对于两串数字,如果有同一列相等的数字,那么叫做strong ...

  4. UVa 340 Master-Mind Hints(猜数字游戏的提示)

    题意  猜数字游戏  统计猜的数字有多少个数字位置正确  有多少个数字在答案中出现可是位置不对  每一个字符仅仅能匹配一次 直接匹配每位数 #include<cstdio> #includ ...

  5. UVa 340 - Master-Mind Hints 解题报告 - C语言

    1.题目大意 比较给定序列和用户猜想的序列,统计有多少数字位置正确(x),有多少数字在两个序列中都出现过(y)但位置不对. 2.思路 这题自己思考的思路跟书上给的思路差不多.第一个小问题——位置正确的 ...

  6. UVA 340 Master-Mind Hints 猜密码游戏(水)

    题意: 给一串密码(第一行),接着再给你很多行猜测,针对每行猜测,输出两个数字,分表代表:同一列上匹配的个数,不同列上匹配的个数.注:匹配指的是一次,一旦配对,不能再与其他配对. 思路: 每接受一行猜 ...

  7. 【例题3-4 UVA - 340】Master-Mind Hints

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 这里出现了没有在相同位置的只能唯一配对. 就是说 3322 2234 这种情况. 只有3个weak pair. 即key[1]=a[ ...

  8. 【每日一题】 UVA - 340 阅读理解+模拟

    https://cn.vjudge.net/problem/UVA-340 题目很难读,差不多读了两天 意思是给你一个n个数的数列,然后有m个询问,每个询问也是一个n个数的数列,让你输出两个数:一个是 ...

  9. 刘汝佳 算法竞赛-入门经典 第二部分 算法篇 第五章 3(Sorting/Searching)

    第一题:340 - Master-Mind Hints UVA:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Item ...

随机推荐

  1. POJ 题目3667 Hotel(线段树,区间更新查询,求连续区间)

    Hotel Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 13805   Accepted: 5996 Descriptio ...

  2. border-image 和 border-color 不能同时使用问题

    遇到如下问题: UI 给的设计,某部分,上边框为 图片,下边框为灰色横线. 看到这个的第一反应是,上边框用 border-image ,为了只让上边框显示图片,所以只给上边框宽度为所需宽度,我的图是 ...

  3. Codeforces Round #250 (Div. 2)B. The Child and Set 暴力

    B. The Child and Set   At the children's day, the child came to Picks's house, and messed his house ...

  4. 二分查找法(binary search)

    二分查找法:一种在有序列表中查找某个值的算法,它每次都将待查找的空间分为两半,在其中一般继续查找. 使用二分查找的前提是:已经排序好的列表.否则,sum对其查找的结果不做保证. 代码实现: // 使用 ...

  5. 转载:C语言的字节对齐及#pragma pack的使用

    C语言的字节对齐及#pragma pack的使用   C编译器的缺省字节对齐方式(自然对界) 在缺省情况下,C编译器为每一个变量或是数据单元按其自然对界条件分配空间. 在结构中,编译器为结构的每个成员 ...

  6. mysql中 groupby分组

    引用自http://www.cnblogs.com/mo-beifeng/archive/2012/02/07/2341886.html#2341105 --按某一字段分组取最大(小)值所在行的数据 ...

  7. join()和fromkeys()的用法与注意事项

    join()和fromkeys()的用法与注意事项 1.join()的用法与注意事项: join()可以使用集合,列表,字符串的子元素,拼接,下面介绍用法: str.join(data) 2.from ...

  8. C# 工厂单例

     public class BusinessFactory    {        private static BusinessFactory instance = null;        pri ...

  9. JavaScript判断对象数组中是否存在某个对象【转】

    1. 如果要判断数组中是否存在某个元素的话很好判断,直接用数组的indexOf方法就好,存在返回当前索引不存在返回-1 var arr=[1,2,3,4] arr.indexOf(3) arr.ind ...

  10. Codeforces 903G 巧妙的线段树

    思路: 巧妙的线段树 想方法将网络流往数据结构方向转化 http://www.cnblogs.com/yyf0309/p/8724558.html //By SiriusRen #include &l ...