UVA340 Master-Mind Hints【数组】
生活随笔
收集整理的這篇文章主要介紹了
UVA340 Master-Mind Hints【数组】
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Master-Mind Hints
?UVA - 340?
題目傳送門(mén)
題目大意:先輸入一個(gè)整數(shù)n,表示有n個(gè)數(shù)字,下面第一行代表正確答案,其下每一行代表用戶猜的答案,需統(tǒng)計(jì)其有多少數(shù)字位置正確(A),有多少數(shù)字在兩個(gè)字符串中都出現(xiàn)過(guò)但位置不正確(B),輸入一全為0結(jié)束。
AC代碼:
#include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #include <cstdlib> #include <cstring> #include <map> #include <stack> #include <queue> #include <vector> #include <bitset> #include <set> #include <utility> using namespace std; typedef long long ll; #define inf 0x3f3f3f3f #define rep(i,l,r) for(int i=l;i<=r;i++) #define lep(i,l,r) for(int i=l;i>=r;i--) #define ms(arr) memset(arr,0,sizeof(arr)) //priority_queue<int,vector<int> ,greater<int> >q; const int maxn = (int)1e5 + 5; const ll mod = 1e9+7; int arr[maxn]; int num[15]; int num1[15]; int arr1[maxn]; int main() {freopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);int n;int cnt=0;while(scanf("%d",&n)!=EOF&&n){cnt++;ms(arr);ms(vis);ms(num);printf("Game %d:\n",cnt);rep(i,1,n) {scanf("%d",&arr[i]);num[arr[i]]++; //記錄每個(gè)數(shù)字出現(xiàn)了多少次}while(1){memcpy(num1,num,sizeof(num)); //將其復(fù)制到num1中以便使用int A=0,B=0;int sum=0;rep(i,1,n) {scanf("%d",&arr1[i]);sum+=arr1[i]; //判斷全為0時(shí)結(jié)束if(arr1[i]==arr[i]){A++; //位置正確則A++num1[arr1[i]]--; //有一個(gè)位置正確就證明不正確的少了一個(gè)}}rep(i,1,n) {if(arr1[i]!=arr[i]&&num1[arr1[i]]>0) //位置不正確且又在原數(shù)組中出現(xiàn)過(guò){B++;num1[arr1[i]]--;}}if(sum==0)break;printf(" (%d,%d)\n",A,B);}}return 0; }?
總結(jié)
以上是生活随笔為你收集整理的UVA340 Master-Mind Hints【数组】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【转】超酷的 mip-infinites
- 下一篇: 螺旋方阵问题【数组】