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