zoukankan      html  css  js  c++  java
  • uva340 Master-Mind Hints (UVA

    题目简要

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

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

    例如以下的样例

    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:
    ",++nnum);
    		for(int j=0;j<jk;j++)
    		printf("    (%d,%d)
    ",p[j].x,p[j].y);
    	}
    }
    
  • 相关阅读:
    python,生产环境安装
    neo4j 图数据库
    RNN系列
    机器学习关于AUC的理解整理
    fensorflow 安装报错 DEPENDENCY ERROR
    dubbo Failed to check the status of the service com.user.service.UserService. No provider available for the service
    使用hbase遇到的问题
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk
    gradle 安装
    jenkins 安装遇到的坑
  • 原文地址:https://www.cnblogs.com/baccano-acmer/p/9741688.html
Copyright © 2011-2022 走看看