【例题3-4 UVA - 340】Master-Mind Hints
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
这里出现了没有在相同位置的只能唯一配对。
就是说
3322
2234
这种情况。
只有3个weak pair.
即key[1]=a[3]==3
以及key[3]=a[1]=2
以及key[4]=a[2]=2
那么我们for一遍。
只要a[i]!=key[i];
就记录答案里面有一个key[i]是没被配对的,同时记录猜的序列里面有一个a[i]没配对。
分别记录在a1[1..9]和a2[1..9]里面;->记录个数
然后weak pair的个数就是
\(∑_1^9min(a1[i],a2[i])\)
【错的次数】
在这里输入错的次数
【反思】
在这里输入反思
【代码】
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1000;
int key[N+10],a[N+10],a1[10],a2[10],n;
int main()
{
//freopen("F:\\rush.txt","r",stdin);
int kk = 0;
while (~scanf("%d",&n) && n)
{
printf("Game %d:\n",++kk);
for (int i = 1;i <= n;i++)
scanf("%d",&key[i]);
while (~scanf("%d",&a[1]))
{
int num1 =0,num2 = 0;
for (int i = 1;i <= 9;i++) a1[i] = 0,a2[i] = 0;
for (int i = 2;i <= n;i++) scanf("%d",&a[i]);
for (int i = 1;i <= n;i++)
{
if (a[i]==key[i])
num1++;
else
{
a1[key[i]]++;
a2[a[i]]++;
}
}
if (a[1]==0) break;
for (int i = 1;i <= 9;i++)
num2+=min(a1[i],a2[i]);
printf(" (%d,%d)\n",num1,num2);
}
}
return 0;
}
【例题3-4 UVA - 340】Master-Mind Hints的更多相关文章
- UVa 340 Master-Mind Hints (优化查找&复制数组)
340 - Master-Mind Hints Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_on ...
- UVa 340 Master-Mind Hints
蛋疼的题目描述,看了好长好长时间才看懂,题目本身是很简单的. Designer给出一串长度为N的Code,Breaker用Guess来破译. 对于两串数字,如果有同一列相等的数字,那么叫做strong ...
- UVa 340 Master-Mind Hints(猜数字游戏的提示)
题意 猜数字游戏 统计猜的数字有多少个数字位置正确 有多少个数字在答案中出现可是位置不对 每一个字符仅仅能匹配一次 直接匹配每位数 #include<cstdio> #includ ...
- UVa 340 - Master-Mind Hints 解题报告 - C语言
1.题目大意 比较给定序列和用户猜想的序列,统计有多少数字位置正确(x),有多少数字在两个序列中都出现过(y)但位置不对. 2.思路 这题自己思考的思路跟书上给的思路差不多.第一个小问题——位置正确的 ...
- UVA 340 Master-Mind Hints 猜密码游戏(水)
题意: 给一串密码(第一行),接着再给你很多行猜测,针对每行猜测,输出两个数字,分表代表:同一列上匹配的个数,不同列上匹配的个数.注:匹配指的是一次,一旦配对,不能再与其他配对. 思路: 每接受一行猜 ...
- 猜数字游戏的提示(Master-Mind Hints, UVa 340)
实现一个经典"猜数字"游戏. 给定答案序列和用户猜的序列,统计有多少数字位置正确 (A),有多少数字在两个序列都出现过但位置不对(B). 输入包含多组数据.每组输入第一行为序列长度 ...
- uva340 Master-Mind Hints (UVA - 340)
题目简要 题目意思很简单每个测试都由原题目在第一行,然后后面的都是去猜的答案,如果猜测的位置正确那么输出的结果的数对里面的第一个数就加一,如果仅答案正确(原题目里有这个数,但是位置不一样)那么就在输出 ...
- 【每日一题】 UVA - 340 阅读理解+模拟
https://cn.vjudge.net/problem/UVA-340 题目很难读,差不多读了两天 意思是给你一个n个数的数列,然后有m个询问,每个询问也是一个n个数的数列,让你输出两个数:一个是 ...
- 《算法竞赛入门经典》习题及反思 -<2>
数组 Master-Mind Hints,Uva 340 题目:给定答案序列和用户猜的序列,统计有多少数字对应正确(A),有多少数字在两个序列都出现过但位置不对. 输入包括多组数据.每组输入第一行为序 ...
随机推荐
- OpenCV —— 跟踪与运动
理解物体运动主要包含两个部分:识别和建模 识别在视频流后续的帧中找出之前某帧镇南关的感兴趣物体 寻找角点 可跟踪的特征点都称为角点,从直观上讲,角点(而非边缘)是一类含有足够信息且能从当前帧和下一帧中 ...
- Java中Thread源码剖析
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 关于线程,用很长时间了,主线程下的子线程去做一些事情,就是一个代理模式,主线程分代理权给子线程,子线 ...
- SQL优化工具SQLAdvisor使用(转)
一.简介 在数据库运维过程中,优化SQL是业务团队与DBA团队的日常任务.例行SQL优化,不仅可以提升程序性能,还能够降低线上故障的概率. 目前常用的SQL优化方式包括但不限于:业务层优化.SQL逻辑 ...
- AutoCAD 许可管理器不起作用,或未正确安装,现在将关闭
问题描述 重新安装了也还是这样,而且第二次打开都跳不出申请码界面就关闭了. 问题原因,初步认为:AutoCAD 在首次弹出申请激活类型的类型时,直接选择了网络激活,而且没有激活成功.再想通过激活码的方 ...
- 【技能】Ext.Viewport 实现左三右一排列方式。
1.Extjs 布局非常是灵活.可是吐槽下CSS,太难重写,想自己重构一套都难哎... var viewport = new Ext.Viewport({ layout:'border', items ...
- badblocks 检查硬盘是否有坏道
硬盘是比較easy坏掉的设备,使用一段时间后可能会出现坏道等物理故障. 当硬盘出现坏道后,若不及时更换或者进行技术上的处理,磁盘的坏道就会越来越多,并会造成频繁死机和数据丢失. 最好的处理方法是更换新 ...
- 辛星跟您玩转vim第三节之程序猿特须要的移动方式
前面第二节我首先值得一提的是,我的vim教程pdf版本号已经写完了.大家能够去下载,这里是csdn的下载地址:csdn下载.假设左边的下载地址挂掉了.也能够自行在浏览器以下输入例如以下地址进行下载:h ...
- Poj1734题解
题目大意 求一个无向图的最小环 题解 假设是有向图的话.仅仅须要令f[i][i]=+∞,再floyd就可以: 对无向图.应该在floyd算法循环至k的一開始进行例如以下操作: 枚举i和j,假设点i存在 ...
- VPS 上线监控监控脚本
文件地址 https://github.com/yourshell/yisuo-script/blob/master/vpstz/vpsmon.zip https://download.csdn.ne ...
- php中类文件名的命名的规则是什么
php中类文件名的命名的规则是什么 一.总结 一句话总结:类库文件(工具类)类文件都是以.class.php为后缀. 1.类的方法和属性的命名规则是怎样的? 都是小驼峰法 方法的命名使用驼峰法,并且首 ...