1198 - Karate Competition
Time Limit: 2 second(s) Memory Limit: 32 MB

Your karate club challenged another karate club in your town. Each club enters N players into the match, and each player plays one game against a player from the other team. Each game that is won is worth 2points, and each game that is drawn is worth 1 point. Your goal is to score as many points as possible.

Your secret agents have determined the skill of every member of the opposing team, and of course you know the skill of every member of your own team. You can use this information to decide which opposing player will play against each of your players in order to maximize your score. Assume that the player with the higher skill in a game will always win, and if the players have the same skill then they will draw.

You will be given the skills of your players and of the opposing players, you have to find the maximum number of points that your team can score.

Input

Input starts with an integer T (≤ 70), denoting the number of test cases.

Each case starts with a line containing an integer N (1 ≤ N ≤ 50). The next line contains N space separated integers denoting the skills of the players of your team. The next line also contains N space separated integers denoting the skills of the players of the opposite team. Each of the skills lies in the range [1, 1000].

Output

For each case, print the case number and the maximum number of points your team can score.

Sample Input

Output for Sample Input

4

2

4 7

6 2

2

6 2

4 7

3

5 10 1

5 10 1

4

10 7 1 4

15 3 8 7

Case 1: 4

Case 2: 2

Case 3: 4

Case 4: 5


PROBLEM SETTER: JANE ALAM JAN
思路:贪心;
本来用贪心去做,想了半天不知道咋贪心,然后这个有点像二分匹配,想要用最大流来做,发现建图不对,后来网上搜了题解,虽然AC了,但是还是有点模糊。
方法是这样的,先将两个数组升序排序,然后贪心的选取,比当前数小的加入优先队列,然后选取小于这个数的最大值,(这是为了让小的尽量适配前面那些不能找到比自己小的数)。也就是先把大于的找出,最后扫一边等于的。
 1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<string.h>
5 #include<stdlib.h>
6 #include<queue>
7 #include<set>
8 using namespace std;
9 int ans1[200];
10 int ans2[200];
11 bool flag[200];
12 bool flag1[200];
13 typedef struct pp
14 {
15 int x;
16 int id;
17 bool operator<(const pp &cx)const
18 {
19 return cx.x>x;
20 }
21 } ss;
22 int er(int n,int m,int ak,int ac[]);
23 int main(void)
24 {
25 int i,j,k;
26 scanf("%d",&k);
27 int s;
28 int n,m;
29 for(s=1; s<=k; s++)
30 {
31 scanf("%d",&n);
32 priority_queue<ss>que;
33 memset(flag,0,sizeof(flag));
34 memset(flag1,0,sizeof(flag1));
35 for(i=0; i<n; i++)
36 {
37 scanf("%d",&ans1[i]);
38 }
39 for(i=0; i<n; i++)
40 {
41 scanf("%d",&ans2[i]);
42 }
43 sort(ans1,ans1+n);
44 sort(ans2,ans2+n);
45 int sum=0;
46 int uu=0;
47 for(i=0;i<n;i++)
48 {
49 while(ans2[uu]<ans1[i]&&uu<n)
50 {
51 ss cc;
52 cc.id=uu;
53 cc.x=ans2[uu];
54 que.push(cc);
55 uu++;
56 }
57 if(!que.empty())
58 {
59 sum+=2;
60 ss ak=que.top();
61 que.pop();
62 flag[i]=true;
63 flag1[ak.id]=true;
64 }
65 } int ac[200];int vv=0;
66 for(i=0;i<n;i++)
67 {
68 if(!flag[i])
69 {
70 for(j=0;j<n;j++)
71 {
72 if(!flag1[j]&&ans1[i]==ans2[j])
73 {
74 sum+=1;
75 flag1[j]=true;
76 break;
77 }
78 }
79 }
80 }
81 printf("Case %d: %d\n",s,sum);
82 }
83 return 0;
84 }

1198 - Karate Competition的更多相关文章

  1. A Regularized Competition Model for Question Diffi culty Estimation in Community Question Answering Services-20160520

    1.Information publication:EMNLP 2014 author:Jing Liu(在前一篇sigir基础上,拓展模型的论文) 2.What 衡量CQA中问题的困难程度,提出从两 ...

  2. 【CodeVS 1198】【NOIP 2012】国王游戏

    http://codevs.cn/problem/1198/ 推导一翻,排好序后,直接上高精度. #include<cstdio> #include<cstring> #inc ...

  3. CIFAR-10 Competition Winners: Interviews with Dr. Ben Graham, Phil Culliton, & Zygmunt Zając

    CIFAR-10 Competition Winners: Interviews with Dr. Ben Graham, Phil Culliton, & Zygmunt Zając Dr. ...

  4. Codevs 1198 国王游戏 2012年NOIP全国联赛提高组

    1198 国王游戏 2012年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 恰逢 H 国国庆,国王邀 ...

  5. Kaggle Competition Past Solutions

    Kaggle Competition Past Solutions We learn more from code, and from great code. Not necessarily alwa ...

  6. lightoj 1198 最大权重匹配

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1198 #include <cstdio> #include <cst ...

  7. UESTC_The Most Wonderful Competition CDOJ 56

    The Most Wonderful Competition Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB ...

  8. codeforces 883M. Quadcopter Competition 思路

    M. Quadcopter Competition time limit per test 3 seconds memory limit per test 256 megabytes input st ...

  9. Codeforces 1082C Multi-Subject Competition(前缀+思维)

    题目链接:Multi-Subject Competition 题意:给定n名选手,每名选手都有唯一选择的科目si和对应的能力水平.并且给定科目数量为m.求选定若干个科目,并且每个科目参与选手数量相同的 ...

随机推荐

  1. 线性表A,B顺序存储合并

    线性表A,B顺序存储合并 有两张非递增有序的线性表A,B,采用顺序存储结构,两张表合并用c表存,要求C为非递减有序的,然后删除C表中值相同的多余元素.元素类型为整型 输入格式: 第一行输入输入表A的各 ...

  2. accessory, accident

    accessory 1. belt, scarf, handbag, Penny用rhinestone做的小首饰(Penny Blossom)都是accessory2. With default se ...

  3. 【leetcode】1217. Minimum Cost to Move Chips to The Same Position

    We have n chips, where the position of the ith chip is position[i]. We need to move all the chips to ...

  4. 自定义控件CustomAlertView

    [记录][完整代码最下] 效果如下: 可行性分析: 由于系统自带的UIAlertView样式简单,只有两种样式,想要理想的样式就要自定义控件了 文件名取为:CustomAlertView 创建文件如下 ...

  5. linux 挂载本地iso

    mount -t iso9660 -o loop /mnt/temp/rhel-server-6.5-i386-dvd.iso /mnt/cdrom -t :设备类型 iso9660是指CD-ROM光 ...

  6. 理解inode以及软硬连接,和inode磁盘爆满的解决方案以及文件权限

    理解Linux的软硬链接 创建硬链接的命令 [root@centos6 data]#ln /data/f1 /data/f2 [root@centos6 data]#ll -itotal 1613 - ...

  7. my38_MySQL事务知识点零记

    从innodb中查看事务信息 show engine innodb status\G; ------------ TRANSACTIONS------------Trx id counter 3153 ...

  8. maven的lifecycle

    1.maven clean. 清理项目的target目录 2.maven compile 编译项目 3.maven test 编译项目后,再执行Junit测试方法 4.maven package 编译 ...

  9. Spring Boot中使用Dubbo

    高并发下Redis会出现的问题: 缓存穿透 缓存雪崩 热点缓存 一.定义commons工程11-dubboCommons (1) 创建工程 创建Maven的Java工程,并命名为11-dubboCom ...

  10. JSP页面的基本结构

    一:一个JSP页面由以下基本元素组成. (1)HTML标签 (2)CSS (3)变量和方法 (4)Java代码段 (5)JSP动作和指令 (6)其他脚本元素(如Javascript) 二:JSP的基本 ...