洛谷——P2587 [ZJOI2008]泡泡堂

两队人马进行比赛, 战斗力值各有差异, 如果一方获胜得两分,战平各得一分,失败不得分,求可取得的最佳战绩与最差战绩。

思路:1)最强的打得过最强的就直接上;

2)最弱的打得过最弱的直接上;

3)我方最弱的打不过对方最弱的,送人头消耗对方最强的兵。这样我方就有效保留了一位战力强的兵。为什么是有效,因为已经打不过了,打最弱是挂,打最强也是挂呀,弱者也要死得其所。。。如果此时是打平呢?分析下得失,如果送人头消耗了最强的兵,则我方最强的兵至少对战最弱的兵可以获胜,这就更有优势;比如1,4与1,4;打平不如打消耗。

 #include<iostream>
#include<algorithm>
using namespace std;
const int MAX=;
int fight(int a[],int b[],int n,bool high); int main()
{
int a[MAX],b[MAX];
int n;
cin>>n;
for(int i=;i<n;i++) cin>>a[i];
for(int i=;i<n;i++) cin>>b[i];
sort(a,a+n);
sort(b,b+n);
cout<<fight(a,b,n,true)<<" "<<fight(b,a,n,false)<<endl; //反复提交n次发现不要求分行,mmm return ;
} int fight(int a[],int b[],int n,bool high)
{
int iLeft,iRight,jLeft,jRight,win;
iLeft=jLeft=;
win=;
iRight=jRight=n-;
while(iLeft<=iRight&&jLeft<=jRight)
{
if(a[iRight]>b[jRight])
{
win+=;
iRight--;
jRight--;
}
else if(a[iLeft]>b[jLeft])
{
win+=;
iLeft++;
jLeft++;
}
else if(a[iLeft]==b[jRight]) //相等则说明剩下的数都是相等的,即打平
{
win+=(iRight-iLeft+);
break;
}
else
{
iLeft++;
jRight--;
}
}
if(high) return win; //如果high为真,求a队最高分
else return (*n-win); //如果high为假,求a队最低分,此时b队得分最高,总分为2*n
}

提交了n遍就是不过,出现Wrong Answer Too short on line 1,后来对比别人的才发现输出时换行导致与要求格式不同。

小结:

1、提交前先上IDE确认能否通过;

2、不要盲目提交,分析原因 ( 比对结果格式/题目要求,分析对比他人结果);

3、方法总比问题多,放空思绪, 歇会再来。

每日一练之贪心算法(P2587)的更多相关文章

  1. 每日一练之排序算法(P1097 统计数字)

    某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5×10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果. ...

  2. 每日一小练——高速Fibonacci数算法

    上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:高速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有例如以下规律: ...

  3. 每日一小练——Eratosthenes 筛选法

    上得厅堂.下得厨房,写得代码.翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:Eratosthenes筛选法 内容: 求质数是一个非常普遍的问题,通常不外乎用数去除.除到不尽时,给定的数就是质数.可是 ...

  4. 贪心算法(Greedy Algorithm)

    参考: 五大常用算法之三:贪心算法 算法系列:贪心算法 贪心算法详解 从零开始学贪心算法 一.基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以 ...

  5. 算法导论----贪心算法,删除k个数,使剩下的数字最小

    先贴问题: 1个n位正整数a,删去其中的k位,得到一个新的正整数b,设计一个贪心算法,对给定的a和k得到最小的b: 一.我的想法:先看例子:a=5476579228:去掉4位,则位数n=10,k=4, ...

  6. LEETCODE —— Best Time to Buy and Sell Stock II [贪心算法]

    Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price of a ...

  7. ACM_ICPC hdu-2111(简单贪心算法)

    一道非常简单的贪心算法,但是要注意输入的价值是单位体积的价值,并不是这个物品的总价值!#include <iostream> #include <stdio.h> #inclu ...

  8. 基于贪心算法的几类区间覆盖问题 nyoj 12喷水装置(二) nyoj 14会场安排问题

    1)区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖 样例: 区间长度8,可选的覆盖线段[2,6],[1, ...

  9. 增强学习贪心算法与Softmax算法

    (一) 这个算法是基于一个概率来对探索和利用进行折中:每次尝试时,以概率进行探索,即以均匀概率随机选取一个摇臂,以的概率进行利用,即以这个概率选择当前平均奖赏最高的摇臂(如有多个,则随机选取). 其中 ...

随机推荐

  1. Java Native

    native 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由 ...

  2. pymongo中的连接操作:Connection()与MongoClient()

    class MongoClient(pymongo.common.BaseObject) Connection to MongoDB. Method resolution order: MongoCl ...

  3. C# EnumHelper Enum的值,Description,ToString()的相互转换

    首先定义枚举类型,如下: /// <summary> /// 板块 /// </summary> public enum Plate {         [Descriptio ...

  4. lnmp一件安装包 搭建laravel 环境(lnmp1.4)(报错500)

    https://blog.csdn.net/huangyuxin_/article/details/78998486

  5. ssh自动登录,脚本实现

    send:用于向进程发送字符串 expect:从进程接收字符串 spawn:启动新的进程 interact:允许用户交互http://www.cnblogs.com/lzrabbit/p/429879 ...

  6. K-means之亚洲杯

    import numpy as np import xlrd from sklearn.cluster import KMeans from sklearn import preprocessing ...

  7. MongoDB中的读写锁

    1. MongoDB 使用的锁 MongoDB 使用的是“readers-writer”锁, 可以支持并发但有很大的局限性当一个读锁存在,许多读操作可以使用这把锁,然而, 当一个写锁的存在,一个单一的 ...

  8. Google SketchUp Cookbook: (Chapter 3) Intersection Edges: Cutting and Trimming

    软件环境 SketchUp Pro 2018 参考书籍 Google SketchUp Cookbook Trimming an Object 使用 Intersect with Model 裁剪物体 ...

  9. springmvc读取服务器磁盘图片,显示于前台页面

    在项目中的config目录下有一个文件,在后台程序中获取 它并使用. springmvc提供一个方法:File file = new ClassPathResource("NonTaxVou ...

  10. PXC5.7(Percona XtraDB Cluster)+HAproxy+Keepalived 集群部署

    Percona-XtraDB-Cluster+Haproxy 搭建集群环境 环境准备及服务器信息: 配置防火墙 firewall-cmd --add-port=3306/tcp --permanent ...