UVA340 UVALive5448 Master-Mind Hints

Regionals 1995 >> North America - North Central NA

问题链接:UVA340 UVALive5448 Master-Mind Hints。基础训练题,用C语言编写程序。

题意:输入多组测试用例,每个用例第1个数为n,n=0时结束。后面有若干行,每行输入n个正整数(值范围为1到9),第1行是n个秘密数(需要猜测的数),第2行开始是猜测的n个数,若猜测的n个数全为0则结束进入下一个测试用例。

求的是,猜测的n个数有几个相同(位置和值与值都相同),有几个相关(值相同而位置不同)。

网上相同版本的使用暴力法的程序居多,大概出自一人之手。可是,编写程序是要用巧,哪能动不动就暴力。

另外,编写程序需要考虑通用性,使用宏定义是值得推荐的一种做法。

程序中,使用数组digitcount_s[]和digitcount_i[]来统计各种值出现的次数,这使得计算结果变得简单。

AC的C语言程序如下:

/* UVA340 UVALive5448 Master-Mind Hints */

#include <stdio.h>
#include <memory.h>

#define MIN(a, b)   (((a) > (b)) ? (b) : (a))

#define VALNUM 10

#define MAXN 1000

int secret[MAXN];
int guess[MAXN];

int main(void)
{
    int caseno=1, n, i;
    int strong, independent;
    int digitcount_s[VALNUM], digitcount_i[VALNUM];

    while(scanf("%d", &n) != EOF && n != 0) {
        printf( "Game %d:\n", caseno++ );

        memset(digitcount_s, 0, sizeof(digitcount_s));
        for(i=0; i<n; i++) {
            scanf( "%d", &secret[i] );

            digitcount_s[secret[i]]++;
        }

        for(;;) {
            int sum = 0;

            strong = 0;
            independent = 0;

            memset(digitcount_i, 0, sizeof(digitcount_i));

            for(i=0; i<n; i++) {
                scanf( "%d", &guess[i] );
                sum += guess[i];

                if(guess[i] == secret[i])
                    strong++;

                digitcount_i[guess[i]]++;
            }
            if(sum == 0)
                break;

            for(i=1; i<VALNUM; i++)
                independent += MIN(digitcount_s[i], digitcount_i[i]);

            printf("    (%d,%d)\n", strong, independent - strong);
        }
    }

    return 0;
}
时间: 2024-10-18 03:36:15

UVA340 UVALive5448 Master-Mind Hints的相关文章

猜数字游戏的提示(Master-Mind Hints,UVa340)

[本博文非博主原创,思路与题目均摘自 刘汝佳<算法竞赛与入门经典(第2版)>] Question 例题3-4 猜数字游戏的提示(Master-Mind Hints,UVa340) 实现一个经典的"猜数字"游戏.给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B). 输入包含多组数据.每组输入第一行为序列长度 n,第二行是答案序列,接下来若干行猜测序列.猜测序列全0 时该组数据结束. n=0时输入结束. Example Inp

UVa340 Master-Mind Hints

Master-Mind Hints MasterMind is a game for two players. One of them, Designer, selects a secret code. The other, Breaker, tries to break it. A code is no more than a row of colored dots. At the beginning of a game, the players agree upon the length N

UVa340(Master-Mind Hints)未完成

#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<

[转]You Could Become an AI Master Before You Know It. Here’s How.

转自:https://www.technologyreview.com/s/608921/ai-algorithms-are-starting-to-teach-ai-algorithms/# You Could Become an AI Master Before You Know It. Here’s How. Automating machine learning will make the technology more accessible to non–AI experts. by 

reset master和reset slave命令解析和区别

reset master删除所有index file 中记录的所有binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库, 注意: reset master 不同于purge binary log的两处地方1.reset master 将删除日志索引文件中记录的所有binlog文件,创建一个新的日志文件 起始值从000001 开始,然而purge binary log 命令并不会修改记录binlog的顺序的数值2.reset maste

微信 {&quot;errcode&quot;:40029,&quot;errmsg&quot;:&quot;invalid code, hints: [ req_id: Cf.y.a0389s108 ]&quot;}

{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: Cf.y.a0389s108 ]"} 问题:微信网页授权后,获取到 openid 了,一刷新又没了 微信网页授权获取到的 code 只能使用一次(5分钟内有效),使用一次后,马上失效. 页面授权跳转成功,根据 code 也换取到 openid 了. 此时刷新页面,并不会再次进行授权,而是直接刷新了一下上一次授权跳转后的链接,带的还是

kubernetes Master部署之Scheduler 以及 HA部署(5)

Kubernetes Scheduler作用是将Controller Manager将要新建的Pod按照特定的调度算法和调度策略绑定到集群中某个合适的Node上,并将绑定信息写入到etcd中. 一.部署Scheduler 下面生成kube-scheduler的kubeconfig文件,操作如下: cd /etc/kubernetes export KUBE_APISERVER="https://192.168.15.200:6443" 配置 cluster kubectl config

nis master的yppasswdd

yppasswdd是nis master特有的,用于和slave进行同步(即push的方式,包括yppasswd密码更新) 操作: master: # /usr/lib/yp/ypinit -m 所有从nis服务器 # service ypserv restart # service yppasswdd restart 有2个关键点: 1是ypinit -m 写上所有nis从服务器 2是需重启yppasswdd服务

2015南阳CCPC A - Secrete Master Plan 水题

D. Duff in Beach Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 无 Description Master Mind KongMing gave Fei Zhang a secrete master plan stashed in a pocket. The plan instructs how to deploy soldiers on the four corners of the city wall. Unfortunately, w