hdu-1052(贪心)
链接
[https://vjudge.net/contest/261555#problem/I]
题意
就是两个人都有n匹马,每只马都有战力
第二个人出马的顺序是战力大到小,请问第一个人采取怎样的策略使得自己总的胜场尽可能多
分析
肯定先对二者的战力分别排序
然后就是想尽可能地把第一个人的每只马发挥最大的作用
如果该马不能打败对方的任何一只马就让它尽可能地把对方最强战力的马,搞定
虽然输了但后面也会有更大的可能多赢
所以就从战力最弱的马相比较
1.
如果当前的我最弱的马大于对方最弱的马就直接比掉
得一分,
2
如果当前的我最弱的马小于对方最弱的马
用弱马比掉对方最强的马,丢一分,但为后面创造了更大的概率赢
3.
如果当前相等
先比较当前双方最强的马
如果我们大于对方直接比掉,以防后面被别人用
因为这样的必胜是一定先下手,而且对我们后面没影响。
否则。
就拿弱马比掉对方最强的马,丢一分,但为后面创造了更大的概率赢
代码
#include<iostream>
#include<cstdio>
#include<string.h>
#include<string>
#include<algorithm>
using namespace std;
#define ll long long
const int N=1e3+10;
int a[N],b[N];
int main(){
int n;
//freopen("in.txt","r",stdin);
while(cin>>n&&n){
for(int i=1;i<=n;i++)
cin>>a[i];
for(int j=1;j<=n;j++)
cin>>b[j];
sort(a+1,a+n+1);
sort(b+1,b+n+1);
int c1=0,c2=0;
int u1=1,d1=n,u2=1,d2=n;
while(u1<=d1&&u2<=d2){
if(a[u1]>b[u2]){
c1++,u1++,u2++;
}
else if(a[u1]<b[u2]){
c2++;
u1++;
d2--;
}
else if(a[u1]==b[u2]){
if(a[d1]>b[d2]){
c1++;
d1--,d2--;
}
else{
if(a[u1]<b[d2])
c2++;
u1++,d2--;
}
}
}
cout<<(c1-c2)*200<<endl;
}
return 0;
}
hdu-1052(贪心)的更多相关文章
- HDU 1052 贪心+dp
http://acm.hdu.edu.cn/showproblem.php?pid=1052 Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS ...
- 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 ...
- Tian Ji -- The Horse Racing HDU - 1052
Tian Ji -- The Horse Racing HDU - 1052 (有平局的田忌赛马,田忌赢一次得200块,输一次输掉200块,平局不得钱不输钱,要使得田忌得到最多(如果只能输就输的最少) ...
- 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 Tian Ji -- The Horse Racing(贪心)
题目来源:1052 题目分析:题目说的权值匹配算法,有点误导作用,这道题实际是用贪心来做的. 主要就是规则的设定: 1.田忌最慢的马比国王最慢的马快,就赢一场 2.如果田忌最慢的马比国王最慢的马慢,就 ...
- HDU 1052 Tian Ji -- The Horse Racing【贪心在动态规划中的运用】
算法分析: 这个问题很显然可以转化成一个二分图最佳匹配的问题.把田忌的马放左边,把齐王的马放右边.田忌的马A和齐王的B之间,如果田忌的马胜,则连一条权为200的边:如果平局,则连一条权为0的边:如果输 ...
- HDU 1052:Tian Ji -- The Horse Racing(贪心)
Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- HDU 1052(田忌赛马 贪心)
题意是田忌赛马的背景,双方各有n匹马,下面两行分别是田忌和齐王每匹马的速度,要求输出田忌最大的净胜场数*每场的赌金200. 开始的时候想对双方的马匹速度排序,然后比较最快的马,能胜则胜,否则用最慢的马 ...
- HDU 1052
http://acm.hdu.edu.cn/showproblem.php?pid=1052 田忌赛马本质就是一个贪心 res表示田忌的胜利场次 1.田忌最快马快于王的最快马,两个最快马比,res++ ...
- Hdu 5289-Assignment 贪心,ST表
题目: http://acm.hdu.edu.cn/showproblem.php?pid=5289 Assignment Time Limit: 4000/2000 MS (Java/Others) ...
随机推荐
- C#线程同步--线程通信
问题抽象:当某个操作的执行必须依赖于另一个操作的完成时,需要有个机制来保证这种先后关系.线程通信方案:ManualResetEventSlim.ManualResetEvent.AutoResetEv ...
- JavaScript用法
JavaScript 用法 JavaScript 语句,会在页面加载时执行. <body> 中的 JavaScript <!DOCTYPE html> <html> ...
- Kotlin 数组学习笔记
创建数组 初始值为空的String数组 val arrayEmpty = emptyArray<String>() 长度为5,初始值为空的Int数组 val arrayEmpty = em ...
- 数据结构(java版)学习笔记(三)——线性表之单链表
单链表的优点: 长度不固定,可以任意增删. 单链表的缺点: 存储密度小,因为每个数据元素,都需要额外存储一个指向下一元素的指针(双链表则需要两个指针). 要访问特定元素,只能从链表头开始,遍历到该元素 ...
- 分析解剖微服务系列(二)-SOA和微服务异同
微服务架构模式成熟之前,软件领域讨论的比较多的是SOA的架构模式.SOA早在1996年就由Gartner提出,作为面向服务的架构模式,SOA的理念是对于复杂的企业IT系统,按照不同的.可重用的粒度划分 ...
- Win下Jenkins-2.138源码编译及填坑笔记
源码编译篇 1. 安装JDK1.8-181,操作系统添加JDK环境变量.Java -version验证一下. 注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java ...
- mac IntelliJ Idea添加schema和dtd约束提示
打开设置 找到Schemac and DTDs 配置约束文件
- JavaScript是如何工作的:使用MutationObserver跟踪DOM的变化
摘要: 掌握MutationObserver. 这是专门探索 JavaScript 及其所构建的组件的系列文章的第10篇. 如果你错过了前面的章节,可以在这里找到它们: JavaScript 是如何工 ...
- ArcGIS 网络分析[2.5] VRP(车辆配送)【较难】
什么是VRP? VRP就是车辆配送. 大家有没有想象过一个城市的某个快递营业点,是怎么让各个快递员配送快递的? 每个快递员针对那片区域的客户,如何走路线才最省时间? 也许你会说,最短路径分析可以做到— ...
- Sql server 2014 数据库还原奇异现象
用A库来还原B库 对正在使用的B库执行还原,还原时修改数据库名称,还原出错,提示数据库正在使用.删除B库,仍然提示正在使用,感觉像僵尸 重启SQL SERVER,因B库已删除,在A库上点击 ...