UVa 340 模拟

背景:1Y!

学习:1.输入流中的全部数据都要处理干净。

*
#include<stdio.h>

int main(void){
	  int n,count=1;
		while(scanf("%d",&n)!=EOF&&n){
			int list[1000],temp[1000];
			printf("Game %d:\n",count++);
			for(int i=0;;i++){
l1:				for(int j=0;j<n;j++){
					if(i==0) {
					scanf("%d",&list[j]);
					if(j==n-1){
						i++;
						goto l1;
					}
				  }else scanf("%d",&temp[j]);
				}
				if(temp[0]==0) break;
				if(i){
					int left=0,right=0;
					for(int k=0;k<n;k++){
						if(list[k]==temp[k]){
							left++;
							list[k]=-list[k];
							temp[k]=0;
						}
					}
					for(int k=0;k<n;k++){
						if(temp[k]){
							for(int kk=0;kk<n;kk++){
								if(list[kk]==temp[k]){
									right++;
									list[kk]=-list[kk];
									break;
								}
							}
						}
					}
					printf("    (%d,%d)\n",left,right);
					for(int ii=0;ii<n;ii++)
					  if(list[ii]<0) list[ii]=-list[ii];
				}
		  }
		}
		return 0;
}
时间: 2024-12-29 23:56:37

UVa 340 模拟的相关文章

UVa 340 Master-Mind Hints

蛋疼的题目描述,看了好长好长时间才看懂,题目本身是很简单的. Designer给出一串长度为N的Code,Breaker用Guess来破译. 对于两串数字,如果有同一列相等的数字,那么叫做strong  match, 位于不同列的相等的两个数字,叫做weak  match. 题目要求就是先输出strong的个数,然后是weak的个数. 对了,需要注意的是 1.每个code只能匹配一次,不论是strong还是match. 2.输出(*,*)的时候注意前面那四个空格,就因为这个我还PE了一次. 如果

uva 340 A - Master-Mind Hints (暴力)

A - Master-Mind Hints Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Description MasterMind is a game for two players. One of them, Designer, selects a secret code. The other, Breaker, tries to break it. A code i

UVa 512 模拟!

背景:1--wa:最后一组输出不要空行!. 思路:我的思路,就是模拟整个表,把表实行操作之后的形态表示出来,把原表中的数据再在已经模拟的表中去查询.书上的思路是,先把一系列的操作保存在一个结构体数组中,每一个结构体数组元素对应一个操作,最后对于每一个坐标的系统执行这一套操作,就可以得出变化好的坐标!这种方法可能只要知道操作结构体的思想,写起来更容易. 学习:1.写完之后查一遍代码,比去单步调试效果好,输出中间值来调试,效果也很好. 我的代码: #include<stdio.h> #includ

UVa 12100 (模拟) Printer Queue

用一个队列模拟,还有一个数组cnt记录9个优先级的任务的数量,每次找到当前最大优先级的任务然后出队,并及时更新cnt数组. 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 #include <cstdio> 5 #include <queue> 6 using namespace std; 7 8 struct Task 9 { 10 int pos, pri

UVa 101 (模拟) The Blocks Problem

题意: 有n个木块及n个木块堆,初始状态是第i个木块在第i个木块堆上.对应有四种操作,然后输出最终状态. 分析: 用一个vector<int>模拟一个木块堆,进行相应操作即可. 1 #include <iostream> 2 #include <cstdio> 3 #include <vector> 4 #include <string> 5 using namespace std; 6 7 const int maxn = 30; 8 int

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

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 that a code must

UVA 401-Palindromes(模拟)

Palindromes Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Description A regular palindrome is a string of numbers or letters that is the same forward as backward. For example, the string "ABCDEDCBA" is

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

题意  猜数字游戏  统计猜的数字有多少个数字位置正确  有多少个数字在答案中出现但是位置不正确  每个字符只能匹配一次 直接匹配每位数 #include<cstdio> #include<algorithm> #include<map> using namespace std; const int N = 1005; int a[N], b[N], c, d; int main() { int n, cas = 0; while (scanf ("%d&qu

UVa 1592模拟(map)

背景:第一因为找到结果之后没有及时的停止查找而wa了一发,改正后ac. 思路:首先对读入的每一个string,设置一个独特的ID,这样就把string变为int,后来比较的时候就会简化很多,设置ID的时候用map来赋予每一种string对应一个独特的ID.然后构建一个key为pair<int,int>的map,因为行比较多列比较少(列的数为10),就枚举列的所有组合,然后对每组组合来进行map判重. 我的代码: #include <set> #include <stack&g