首页 > 代码库 > LA 4636 积木艺术

LA 4636 积木艺术

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\n", ans);34     }35 }

 

LA 4636 积木艺术