admin管理员组文章数量:1026989
BIT
买衣服
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 632 Accepted Submission(s) : 51
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
一起去买衣服吧。有n个人,m个商店,每个人喜欢两种颜色,他们一起去买衣服,但是每个商店里只有一种颜色的衣服,当一个人买到他喜欢颜色的衣服时,他会变得高兴。选择一家商店,这n个人都要去这家商店去买衣服,你的任务是保证变得高兴的人数最多。
Input
有多组测试用例。第一行输入一个正整数n(1<=n<=10000)--去买衣服的人数,人从1-n编号。
接下来n行每行输入两个正整数a,b,表示第i个人喜欢颜色a和b(1<=a,b<=100000)。
接下来输入一个正整数m(1<=m<=10000)--有m家商店,商店从1-m编号。
接下来输入m个正整数c1,c2,......,cm(1<=cj<=100000),第j家商店衣服的颜色是cj。
保证每个人喜欢的两种颜色不一样。
Output
输出一个正整数,代表应该选择那家商店,使得变得高兴的人数最多。如果有多家这样的商店,那么输出编号最小的那一个。如果不存在这样的商店,则输出0。Sample Input
2 2 4 2 5 3 4 2 5
Sample Output
2
Author
CWIND
#include<stdio.h>
int main()
{int n = 0, m = 0, i = 0, j = 0;long int a[110000] = { 0 }, b[110000] = { 0 }, c[110000] = { 0 }, num[11000] = { 0 };while (scanf("%d", &n) != EOF){int max = 0, count = 0;memset(num, 0, sizeof(num));memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));memset(c, 0, sizeof(c));for (i = 0;i<n;i++)scanf("%d%d", &a[i], &b[i]);scanf("%d", &m);for (i = 0;i<m;i++)scanf("%d", &c[i]);for (i = 0;i<m;i++){for (j = 0;j<n;j++){if (a[j] == c[i] || b[j] == c[i])num[i]++;}}for (i = 0;i<m;i++){if (num[i]>max){max = num[i];count = i + 1;}}printf("%d\n", count);}return 0;
}
BIT
买衣服
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 632 Accepted Submission(s) : 51
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
一起去买衣服吧。有n个人,m个商店,每个人喜欢两种颜色,他们一起去买衣服,但是每个商店里只有一种颜色的衣服,当一个人买到他喜欢颜色的衣服时,他会变得高兴。选择一家商店,这n个人都要去这家商店去买衣服,你的任务是保证变得高兴的人数最多。
Input
有多组测试用例。第一行输入一个正整数n(1<=n<=10000)--去买衣服的人数,人从1-n编号。
接下来n行每行输入两个正整数a,b,表示第i个人喜欢颜色a和b(1<=a,b<=100000)。
接下来输入一个正整数m(1<=m<=10000)--有m家商店,商店从1-m编号。
接下来输入m个正整数c1,c2,......,cm(1<=cj<=100000),第j家商店衣服的颜色是cj。
保证每个人喜欢的两种颜色不一样。
Output
输出一个正整数,代表应该选择那家商店,使得变得高兴的人数最多。如果有多家这样的商店,那么输出编号最小的那一个。如果不存在这样的商店,则输出0。Sample Input
2 2 4 2 5 3 4 2 5
Sample Output
2
Author
CWIND
#include<stdio.h>
int main()
{int n = 0, m = 0, i = 0, j = 0;long int a[110000] = { 0 }, b[110000] = { 0 }, c[110000] = { 0 }, num[11000] = { 0 };while (scanf("%d", &n) != EOF){int max = 0, count = 0;memset(num, 0, sizeof(num));memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));memset(c, 0, sizeof(c));for (i = 0;i<n;i++)scanf("%d%d", &a[i], &b[i]);scanf("%d", &m);for (i = 0;i<m;i++)scanf("%d", &c[i]);for (i = 0;i<m;i++){for (j = 0;j<n;j++){if (a[j] == c[i] || b[j] == c[i])num[i]++;}}for (i = 0;i<m;i++){if (num[i]>max){max = num[i];count = i + 1;}}printf("%d\n", count);}return 0;
}
本文标签: bit
版权声明:本文标题:BIT 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1730887069a1019564.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论