【模拟】XMU 1054 Hacker

题目链接:

  http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1054

题目大意

  多组数据,n=0结束。给定n(n<=1 000 000)和n个ip(*.*.*.*)求出现次数超过一半的ip是多少(数据保证有)。

题目思路:

  【模拟】

  暴力模拟能A。

  暴力排序能A。

排序:

 1 //
 2 //by coolxxx
 3 //
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<string>
 7 #include<iomanip>
 8 #include<memory.h>
 9 #include<time.h>
10 #include<stdio.h>
11 #include<stdlib.h>
12 #include<string.h>
13 //#include<stdbool.h>
14 #include<math.h>
15 #define min(a,b) ((a)<(b)?(a):(b))
16 #define max(a,b) ((a)>(b)?(a):(b))
17 #define abs(a) ((a)>0?(a):(-(a)))
18 #define lowbit(a) (a&(-a))
19 #define sqr(a) ((a)*(a))
20 #define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))
21 #define eps (1e-8)
22 #define J 10000000
23 #define MAX 0x7f7f7f7f
24 #define PI 3.1415926535897
25 #define N 1000004
26 using namespace std;
27 typedef long long LL;
28 int cas,cass;
29 int n,m,lll,ans;
30 struct xxx
31 {
32     int s1,s2,s3,s4;
33 }a[N];
34 bool cmp(xxx aa,xxx bb)
35 {
36     if(aa.s1!=bb.s1)return aa.s1<bb.s1;
37     if(aa.s2!=bb.s2)return aa.s2<bb.s2;
38     if(aa.s3!=bb.s3)return aa.s3<bb.s3;
39     return aa.s4<bb.s4;
40 }
41 int main()
42 {
43     #ifndef ONLINE_JUDGE
44 //    freopen("1.txt","r",stdin);
45 //    freopen("2.txt","w",stdout);
46     #endif
47     int i,j,k;
48 //    for(scanf("%d",&cas);cas;cas--)
49 //    for(scanf("%d",&cas),cass=1;cass<=cas;cass++)
50 //    while(~scanf("%s",s))
51     while(~scanf("%d",&n) && n)
52     {
53         printf("Case %d:
",++cas);
54         for(i=1;i<=n;i++)
55             scanf("%d.%d.%d.%d",&a[i].s1,&a[i].s2,&a[i].s3,&a[i].s4);
56         sort(a+1,a+1+n,cmp);
57         printf("%d.%d.%d.%d
",a[(n+1)/2].s1,a[(n+1)/2].s2,a[(n+1)/2].s3,a[(n+1)/2].s4);
58     }
59     return 0;
60 }
61 /*
62 //
63 
64 //
65 */
千万不要点

模拟:

 1 //
 2 //by coolxxx
 3 //
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<string>
 7 #include<iomanip>
 8 #include<memory.h>
 9 #include<time.h>
10 #include<stdio.h>
11 #include<stdlib.h>
12 #include<string.h>
13 //#include<stdbool.h>
14 #include<math.h>
15 #define min(a,b) ((a)<(b)?(a):(b))
16 #define max(a,b) ((a)>(b)?(a):(b))
17 #define abs(a) ((a)>0?(a):(-(a)))
18 #define lowbit(a) (a&(-a))
19 #define sqr(a) ((a)*(a))
20 #define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))
21 #define eps (1e-8)
22 #define J 10000000
23 #define MAX 0x7f7f7f7f
24 #define PI 3.1415926535897
25 #define N 256
26 using namespace std;
27 typedef long long LL;
28 int cas,cass;
29 int n,m,lll,ans;
30 int u[4][N];
31 int a,b,c,d,aa,bb,cc,dd;
32 int main()
33 {
34     #ifndef ONLINE_JUDGE
35 //    freopen("1.txt","r",stdin);
36 //    freopen("2.txt","w",stdout);
37     #endif
38     int i,j,k;
39 //    for(scanf("%d",&cas);cas;cas--)
40 //    for(scanf("%d",&cas),cass=1;cass<=cas;cass++)
41 //    while(~scanf("%s",s))
42     while(~scanf("%d",&n) && n)
43     {
44         printf("Case %d:
",++cas);
45         memset(u,0,sizeof(u));
46         aa=bb=cc=dd=0;
47         for(i=1;i<=n;i++)
48         {
49             scanf("%d.%d.%d.%d",&a,&b,&c,&d);
50             u[0][a]++;u[1][b]++;u[2][c]++;u[3][d]++;
51             if(u[0][a]>n/2)aa=a;
52             if(u[1][b]>n/2)bb=b;
53             if(u[2][c]>n/2)cc=c;
54             if(u[3][d]>n/2)dd=d;
55         }
56         printf("%d.%d.%d.%d
",aa,bb,cc,dd);
57     }
58     return 0;
59 }
60 /*
61 //
62 
63 //
64 */
千万不要点
原文地址:https://www.cnblogs.com/Coolxxx/p/5760327.html