uva340 模拟
2016-09-26 19:35
323 查看
题目传送门: http://bak.vjudge.net/problem/UVA-340
题意:先给出一组数字,然后进行多组询问,问你该组数组中在原组中对应的数目,以及不对应但出现过的数目
思路: 数字x与原组对应项的数目a直接统计就行,但第二条的话,需要统计数字x在原组中出现的次数c1,和在查询组中出现的次数c2,然后min(c1,c2)-a即可。
虽然ac了,但代码写的有些烂,只不过也不想再改了,就这样吧。
代码如下:
题意:先给出一组数字,然后进行多组询问,问你该组数组中在原组中对应的数目,以及不对应但出现过的数目
思路: 数字x与原组对应项的数目a直接统计就行,但第二条的话,需要统计数字x在原组中出现的次数c1,和在查询组中出现的次数c2,然后min(c1,c2)-a即可。
虽然ac了,但代码写的有些烂,只不过也不想再改了,就这样吧。
代码如下:
#include <map> #include <set> #include <stack> #include <queue> #include <cmath> #include <string> #include <vector> #include <cstdio> #include <cctype> #include <cstring> #include <sstream> #include <cstdlib> #include <iostream> #include <algorithm> using namespace std; #define lowbit(x) x&(-x) #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define ll long long #define ull unsigned long long #define mem(n,v) memset(n,v,sizeof(n)) #define MAX 1000005 #define MAXN 2000005 #define PI 3.1415926 #define E 2.718281828459 #define opnin freopen("text.in.txt","r",stdin) #define clsin fclose(stdin) const int INF = 0x3f3f3f3f; const ll INFF = 0x3f3f; const double pi = 3.141592653589793; const double inf = 1e18; const double eps = 1e-8; const ll mod = 1e9+7; const ull mx = 133333331; const char str1[] = "A 3 HIL JM O 2TUVWXY5";//mirror char const char str2[] = "1SE Z 8 ";//mirror num int a1[MAX]; int a2[MAX]; int ans1[MAX]; int ans2[MAX]; int x[MAX]; int y[MAX]; void init() { mem(a1,0); mem(a2,0); mem(ans1,0); mem(ans2,0); } int main() { int n; int t = 1; while(scanf("%d",&n) && n){ printf("Game %d:\n",t++); init(); for(int i=1;i<=n;i++){ scanf("%d",&a1[i]); a2[a1[i]]++; } for(;;){ mem(ans1,0); mem(ans2,0); mem(x,0); mem(y,0); int temp[10]; for(int i=1;i<=9;i++) temp[i] = a2[i]; for(int i=1;i<=n;i++){ scanf("%d",&x[i]); if(a1[i] == x[i]){ ans1[x[i]]++; temp[x[i]]--; } else y[x[i]]++; } if(!x ) break; for(int i=1;i<=9;i++){ if(temp[i]) ans2[i] += min(temp[i],y[i]); } int cnt1 = 0; int cnt2 = 0; for(int i=1;i<=9;i++){ // cout << "i : " << i << " ans1,ans2: " << ans1[i] <<' ' << ans2[i] <<endl; cnt1 += ans1[i]; cnt2 += ans2[i]; } printf(" (%d,%d)\n",cnt1,cnt2); } } return 0; }
相关文章推荐
- UVA 340 Master-Mind Hints 猜数字提示的游戏 简单模拟
- UVA 340 --Master-Mind Hints 算是模拟吧
- uva 340 Master-Mind Hints 模拟
- UVa 340 模拟
- UVA - 1589 Xiangqi (模拟)
- UVALive 4725 Airport 贪心 二分 模拟
- Uva 550 Multiplying by Rotation(模拟乘法)
- UVALive - 7511 Multiplication Table (模拟)
- UVA 101 The Blocks Problem(模拟)
- UVA 340 Master-Mind Hints
- UVA - 506 System Dependencies(STL + 模拟)
- UVa 202 Repeating Decimals(模拟)
- UVA-10037 Bridge 模拟+dfs
- uva 10881 Piotr's Ants (模拟)
- UVa 10205 Stack 'em Up (模拟)
- UVA-10716 Evil Straw Warts Live(贪心+模拟)
- UVA 11995 I Can Guess the Data Structure!【模拟】
- uva 804 Petri Net 模拟
- uva 11386 Triples (hash总是wa,于是模拟STL)
- Uva 1594 模拟