还是UVa340】的更多相关文章

[本博文非博主原创,思路与题目均摘自 刘汝佳<算法竞赛与入门经典(第2版)>] Question 例题3-4 猜数字游戏的提示(Master-Mind Hints,UVa340) 实现一个经典的“猜数字”游戏.给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B). 输入包含多组数据.每组输入第一行为序列长度 n,第二行是答案序列,接下来若干行猜测序列.猜测序列全0 时该组数据结束. n=0时输入结束. Example Input 41 3 5…
一个经典的找数字位置正确并且找到正确数列中存在的数字而错误的序列存在但是不是正确位置的算法. 看似很难的算法,但是lrj却很简单解决. #include<cstdio> #define Max 1010 int a[Max],b[Max]; int main() { // freopen("in.txt","r",stdin); int T,F,n; ; while(scanf("%d",&n) != EOF){ ) brea…
这道题目大意是:给定一个secret code,然后输入guess code,让你编程给出提示,提示的格式是(i,j),其中i表示strong match的个数,j表示weak match的个数.所谓strong&weak match就有一点像猜数字游戏了,strong match表示数字正确且位置也正确:weak match表示数字正确但位置不正确.要求每输入一个guess code就要输出相应的hint. 我的思路是先循环一次将所有strong match找出,再建立一个存下表的数组,将不是…
#include <stdio.h>#include <string.h> #define MIN(a,b) (((a) < (b)) ? (a) : (b)) int main(){    int code[1000];    int guess[1000];    int C1[10]; // 数字1~9在code中出现的次数,C1[0]未使用    int C2[10]; // 数字1~9在guess中出现的次数,C2[0]未使用    int n, i, S, C,…
题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=276 C++11代码如下: #include<iostream> using namespace std; #define maxn 1010 int main() { int n; int a[maxn], b[maxn]; ; while ((cin >…
题目简要 题目意思很简单每个测试都由原题目在第一行,然后后面的都是去猜的答案,如果猜测的位置正确那么输出的结果的数对里面的第一个数就加一,如果仅答案正确(原题目里有这个数,但是位置不一样)那么就在输出数对的第二个数加一. 并且需要注意已经判断过的数是不能再判断第二次的. 例如以下的样例 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…
之前理解题意错误,应该是每一次game,只输入一组答案序列,输入多组测试序列,而之前的错误理解是每一次输入都对应一组答案序列和一组测试序列,下面是理解题意后的代码,但是还是WA,待修改 #include<stdio.h> #define maxn 1010 int main() { int num,a[maxn],i,j,b[maxn]; int sum=0; while(scanf("%d",&num)!=EOF&&num) { ++sum; pr…
#include<stdio.h> #define maxn 1010 int main() { int num,a[maxn],i,j,b[maxn]; ; &&num) { ++sum; printf("Game %d:\n",sum); for(;;) { ,s2=; ;i<num;i++) { scanf("%d",&a[i]); } ;i<num;i++) { scanf("%d",&am…
#include<stdio.h> #define maxn 1010 int main() { ; while(scanf("%d",&num)!=EOF&&num) { printf("Game %d:\n",case); ,s2=; ;i<num;i++) { scanf("%d",&a[i]); } for(;;) { ;i<num;i++) { scanf("%d&quo…
#include<stdio.h> int main() { int num,a[100],i,j,b[100]; while(scanf("%d",&num)!=EOF) { int s1=0,s2=0; for(i=0;i<num;i++) { scanf("%d",&a[i]); } for(i=0;i<num;i++) { scanf("%d",&b[i]); } for(i=0;i<…