https://vjudge.net/problem/UVALive-4636
题意:
给出正视图和侧视图,判断最少要用多少个立方体。
思路:
首先正视图里出现的积木个数都是必须的,记录下每一列积木的个数出现的次数,接下来看侧视图,如果侧视图某一列积木个数在主视图里找不到,那么就要额外的加上这一列积木数。
1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 6 const int maxn = 30; 7 8 int vis[maxn]; 9 10 int n, m; 11 12 int main() 13 { 14 //freopen("D:\txt.txt", "r", stdin); 15 int x; 16 while (~scanf("%d%d",&n,&m) && n && m) 17 { 18 int x; 19 int ans = 0; 20 memset(vis, 0, sizeof(vis)); 21 for (int i = 0; i < n; i++) 22 { 23 scanf("%d", &x); 24 ans += x; 25 vis[x]++; 26 } 27 for (int i = 0; i < m; i++) 28 { 29 scanf("%d", &x); 30 if (!vis[x]) ans += x; 31 else vis[x]--; 32 } 33 printf("%d ", ans); 34 } 35 }