首页 > 代码库 > cf B George and Round
cf B George and Round
题意:输入n,m,下一行为n个数a1<a2<a3......<an;然后再输入m个数b1<=b2<=b3<.....<=bm; 每个ai都必须在b中找到相等的数,找不到可以让比ai的大的数转化为ai,问最少需要添加几个数,使得ai在b都能找到相等的数。
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 int n,m; 7 int a[3010],b[3010]; 8 int vis[3010000]; 9 bool vis1[3000100];10 11 int main()12 {13 while(scanf("%d%d",&n,&m)!=EOF)14 {15 memset(a,0,sizeof(a));16 memset(b,0,sizeof(b));17 for(int i=0; i<n; i++)18 {19 scanf("%d",&a[i]);20 }21 for(int j=0; j<m; j++)22 {23 scanf("%d",&b[j]);24 vis[b[j]]++;25 }26 int ans=0;27 for(int i=0; i<n; i++)28 {29 if(vis[a[i]]) {vis[a[i]]--; vis1[a[i]]=true;}30 }31 for(int i=0; i<n; i++)32 {33 if(!vis[a[i]]&&!vis1[a[i]])34 {35 bool flag=false;36 for(int j=0; j<m; j++)37 {38 if(b[j]<a[i]) continue;39 if(vis[b[j]]==0) continue;40 vis[b[j]]--;41 flag=true;42 break;43 }44 if(!flag) ans++;45 }46 }47 printf("%d\n",ans);48 }49 return 0;50 }
cf B George and Round
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。