HDU 1052
http://acm.hdu.edu.cn/showproblem.php?pid=1052
田忌赛马本质就是一个贪心
res表示田忌的胜利场次
1、田忌最快马快于王的最快马,两个最快马比,res++
2、田忌最快马慢于王的最快马,田忌的最慢马和王的最快马比,res--
3、田忌最快马等于王的最快马,分三种情况
田忌最慢马快于王的最慢马,两个最慢马比,res++
田忌最慢马慢于王的最慢马,田忌的最慢马和王的最快马比,res--
田忌最慢马等于王的最慢马,田忌的最慢马和王的最快马比,如果田忌的最慢马慢于王的快马res--(这个判断为了排除两个相等的情况,第二个样例给的非常厚道)
这题当年似乎让很多人饮恨,其实现场赛对于大多数队伍来讲,不用出什么真正的难题,需要的只是把这种题目做稳,理清思路,不慌张。当时会去敲二分图最大匹配的选手肯定已经乱了(因为理性思考的话,1000点的稠密图二分图最大匹配没有一丝生机,尽管1000看似诱人),同时不得不说,数据上限是1000的贪心非常阴险,如果出成10w应该会有更多人ac。
#include <iostream>
#include <cstdio>
#include <algorithm> using namespace std; int a[],b[]; int main(){
int n,f1,r1,f2,r2;
while(~scanf("%d",&n),n){
for(int i=;i<n;i++)
scanf("%d",&a[i]);
for(int i=;i<n;i++)
scanf("%d",&b[i]);
sort(a,a+n);sort(b,b+n);
f1=f2=;r1=r2=n-;
int cnt=;
int res=;
while(){
if(a[r1]>b[r2]){
res++;
r1--;r2--;
}
else if(a[r1]<b[r2]){
res--;
f1++;r2--;
}
else{
if(a[f1]>b[f2]){
res++;
f1++;f2++;
}
else if(a[f1]<b[f2]){
res--;
f1++;r2--;
}
else{
if(a[f1]<b[r2])res--;
f1++;r2--;
}
}
cnt++;
if(cnt==n)break;
}
printf("%d\n",res*);
}
return ;
}
HDU 1052的更多相关文章
- Tian Ji -- The Horse Racing HDU - 1052
Tian Ji -- The Horse Racing HDU - 1052 (有平局的田忌赛马,田忌赢一次得200块,输一次输掉200块,平局不得钱不输钱,要使得田忌得到最多(如果只能输就输的最少) ...
- HDU 1052 Tian Ji -- The Horse Racing (贪心)(转载有修改)
Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- HDU 1052 Tian Ji -- The Horse Racing(贪心)(2004 Asia Regional Shanghai)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1052 Problem Description Here is a famous story in Ch ...
- HDU 1052 贪心+dp
http://acm.hdu.edu.cn/showproblem.php?pid=1052 Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS ...
- hdu 1052 (greedy algorithm) 分类: hdoj 2015-06-18 16:49 35人阅读 评论(0) 收藏
thanks to http://acm.hdu.edu.cn/discuss/problem/post/reply.php?action=support&postid=19638&m ...
- HDU 1052 Tian Ji -- The Horse Racing(贪心)
题目来源:1052 题目分析:题目说的权值匹配算法,有点误导作用,这道题实际是用贪心来做的. 主要就是规则的设定: 1.田忌最慢的马比国王最慢的马快,就赢一场 2.如果田忌最慢的马比国王最慢的马慢,就 ...
- Hdu 1052 Tian Ji -- The Horse Racing
Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- hdu 1052 Tian Ji -- The Horse Racing【田忌赛马】
题目 这道题主要是需要考虑到各种情况:先对马的速度进行排序,然后分情况考虑: 1.当田忌最慢的马比国王最慢的马快则赢一局 2.当田忌最快的马比国王最快的马快则赢一局 3.当田忌最快的马比国王最快的马慢 ...
- HDU 1052(田忌赛马 贪心)
题意是田忌赛马的背景,双方各有n匹马,下面两行分别是田忌和齐王每匹马的速度,要求输出田忌最大的净胜场数*每场的赌金200. 开始的时候想对双方的马匹速度排序,然后比较最快的马,能胜则胜,否则用最慢的马 ...
随机推荐
- Struts2 实现文件上传和下载
实现上传功能 Struts2实际上是使用的commons fileupload 组件,所以记得导包哦. 1.首先你应该有一个上传页面 <!-- file的name属性与action中的File类 ...
- Android Bundle、Handler和Message类介绍
Bundle是一个载体,可以存放基本数据类型.对象等内容,相当于一辆汽车,可以装载很多东西,然后运到需要的地方,例如: Bundle mBundle=new Bundle(); mBundle.put ...
- Go语言并发与并行学习笔记(一)
转:http://blog.csdn.net/kjfcpua/article/details/18265441 如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人. Go语言从语言层面上就 ...
- tomcat 下虚拟机部署导致应用filter失效的问题
遇到一个困扰我两天的问题 服务器的tomcat上面挂了3个项目 1个项目在D:\tomcat\\webapps\ROOT下 运行正常 1个项目在D:\heyefan下 运行正常 1个项目在D:\MA ...
- centos 运用ssh的rsa算法实现无密码登录
ssh 公钥和私钥原理 1.客户端机子生成私钥和公钥,将公钥放到服务器证书中,然后就可以实现免密码登录.(服务器认证文件要有该登录用户的读执行权限) 2.a登录b: a机子:test01账号(b也要建 ...
- 嵌套 click 第二层 click会叠加 导致 触发 多次
$("#appearHiddenDiv").click(function(){ $("#hiddenDiv").css({display:"block ...
- C#在线更新程序[下载程序、解压缩程序、控制台程序]
[1]下载文件 using System;using System.Collections.Generic;using System.Linq;using System.Text;using Syst ...
- Eclipse汉化问题解决
1.删除eclipse/configuration 目录下的 org.eclipse.osgi 和org.eclipse.update 两个子目录2.重新启动 eclipse
- bzoj 2744: [HEOI2012]朋友圈
#include<cstdio> #include<iostream> #define M 3010 using namespace std; ],u[M*M>>] ...
- Operating System Concepts 项目:生产者-消费者问题 线程
一. 实验目的 实现一个c程序,该程序能模拟解决有限缓冲问题,其中消费者和生产者产生和消耗随机数 二.实验内容 缓冲区 元数据类型为buffer_item,大小为1000的数组,按环形队列处理 生产者 ...