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. c#Gridview添加颜色

    e.Row.Cells[1].ForeColor = System.Drawing.Color.Blue;

  2. Go语言核心36讲(Go语言实战与应用二十二)--学习笔记

    44 | 使用os包中的API (上) 我们今天要讲的是os代码包中的 API.这个代码包可以让我们拥有操控计算机操作系统的能力. 前导内容:os 包中的 API 这个代码包提供的都是平台不相关的 A ...

  3. 前端3 — js — BOM没完( 不了解也行 )

    1.js是什么? -- 英文全称javascript javaScript(简称"JS") 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言.虽然它是作为开发Web页面的脚 ...

  4. Yarn 公平调度器案例

    目录 公平调度器案例 需求 配置多队列的公平调度器 1 修改yarn-site.xml文件,加入以下从参数 2 配置fair-scheduler.xml 3 分发配置文件重启yarn 4 测试提交任务 ...

  5. java中类实现Serializable接口的原因

    背景:一个java中的类只有实现了Serializable接口,它的对象才是可序列化的.如果要序列化某些类的对象,这些类就必须实现Serializable接口.Serializable是一个空接口,没 ...

  6. 关于C语言中不同类型数据进行计算 有符号和无符号数进行计算

    float是8个有效位, 做个试验: 输出如下: 上面说明了什么: 1, 18/2.2 是除不尽的, 因为是define,所以没有给ratio变量赋值类型,但是从sizeof输出的结果是8,所以系统默 ...

  7. Gitlab安装操作说明书

    一.Gitlab安装操作步骤 登录官方网站https://about.gitlab.com/downloads/根据你所需要的系统版本,作者使用的是centos6, 检查您的服务器是否符合硬件要求.g ...

  8. 【Linux】【Basis】进程

    1. 维基百科:https://zh.wikipedia.org/wiki/%E8%A1%8C%E7%A8%8B 进程的类型: 终端:硬件设备,关联一个用户接口 与终端相关:通过终端启动 与终端无关: ...

  9. my41_主从延迟大排查

    半同步复制 主库执行 INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; SET GLOBAL rpl_semi_sync ...

  10. 5、Redis五大基本数据类型——String类型

    一.Redis支持数据类型简介 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 二.String类 ...