这题真是*到家了QAQ

我在考场上调了将近75min,总算过了大样例。

首先,我们可以简化这一题,这道题的本质就是让我们找出一个点p2,往那个点上面加上s2个单位的重量,使得以m为中的两边的权值和的差尽量的小。

其中权值和的计算方法是:对于第i号节点(i!=m),令mi为它的权值,则有mi=|i-m|*ai,其中ai为输入时的该兵营的兵力总量。

明白了这一点后,剩下的就好办了。我们只要用一个bl_l来存储轩轩一方的权值总和,用bl_r来存储凯凯一方的权值总和;(注意,要用bl_l和bl_r 要开unsigned long long)

最后,计算cha = |bl_l-bl_r|;再用cha 来除以输入的s2(你手中拥有的兵力),就是answer 了

此时,还有一个要注意的地方,如果answer超过了n或者小于了1,那么就要相应地将其变成n或者1,因为答案必须在1~n之间。

而且answer需要四舍五入。

下面是代码:

 #include <cstdio>
#include <algorithm>
using namespace std;
#define ll unsigned long long
int a[],n,m,p1,s1,s2;
ll bl_l,bl_r;
int main()
{
// freopen("fight.in","r",stdin);
// freopen("fight.out","w",stdout);
scanf("%d",&n);
for (int i=;i<=n;i++)
scanf("%d",&a[i]);
scanf("%d %d %d %d",&m,&p1,&s1,&s2);
a[p1]+=s1;
for (int i=;i<m;i++) bl_l+=(ll)(m-i)*a[i];
for (int i=(int)m+;i<=n;i++) bl_r+=(ll)(i-m)*a[i];
// printf("%llu %llu\n",bl_l,bl_r);
if (bl_l==bl_r) printf("%d\n",m);
else if (bl_l<bl_r)
{
ll cha=bl_r-bl_l;
// printf("%lld\n",cha);
double mm=(double)cha/(double)s2;
// printf("%lf\n",mm);
ll dis_m=(mm*+)/;
if (m-dis_m<=) printf("1\n");
else printf("%lld\n",m-dis_m);
}
else
{
ll cha=bl_l-bl_r;
// printf("%lld\n",cha);
double mm=(double)cha/(double)s2;
// printf("%lf\n",mm);
ll dis_m=(mm*+)/;
if (m+dis_m>n) printf("%d\n",n);
else printf("%lld\n",m+dis_m);
}
fclose(stdin);
fclose(stdout);
return ;
}

P5016 龙虎斗 题解的更多相关文章

  1. NOIP2018普及T2暨洛谷P5016 龙虎斗

    题目链接:https://www.luogu.org/problemnew/show/P5016 分析: 这是一道模拟题.看到题目,我们首先要把它细致的读明白,模拟题特别考察细节,往往会有想不到的坑点 ...

  2. P5016 龙虎斗

    链接:P5016 ------------------------------------ 作为2019年的模拟,还是有必要写一些的 --------------------------------- ...

  3. 洛谷 P5016 龙虎斗(模拟)

    嗯... 题目链接:https://www.luogu.org/problem/P5016 这道题是一道模拟,不要考虑复杂,直接暴力枚举每一个点,看看加上s2之后两个势力的差值,找最小,记录下标. 注 ...

  4. 洛谷 P5016 龙虎斗

    输入兵营总数.兵营人数.以m分界. 然后输入s1个兵到了p1兵营. 最终我们要求的是把s2个兵放到哪个兵营使龙虎双方气势差距最小. 第一要把每个兵营的气势算出来,并且加到它所属的阵营里(<m是龙 ...

  5. P5016龙虎斗

    这道题是2018年普及组的第二题,是一个模拟题. 首先计算出双方各自的势力,然后将增援的队伍势力加上,比较此时双方势力,并且作差,最后枚举将公平兵加在哪一个兵营.看似简单的题被我20分钟就写完了,但是 ...

  6. 题解 P5016 【龙虎斗】

    首先祝各位大佬noip有个好成绩吧 当时比赛有个大数据,蒟蒻我暴力居然过了,好激动 这题一定要注意开long long (那个大数据就是我开long long才过的) 还有刚开始应设置答案为m(见解析 ...

  7. 2018年NOIP普及组复赛题解

    题目涉及算法: 标题统计:字符串入门题: 龙虎斗:数学题: 摆渡车:动态规划: 对称二叉树:搜索. 标题统计 题目链接:https://www.luogu.org/problem/P5015 这道题目 ...

  8. [Noip 2018][标题统计 龙湖斗 摆渡车 对称二叉树]普及组题解

    啊喂,都已经9102年了,你还在想去年? 这里是一个Noip2018年PJ第二题打爆的OIer,错失省一 但经过了一年,我学到了很多,也有了很多朋友,水平也提高了很多,现在回看当时: 今年的Noip ...

  9. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

随机推荐

  1. The application to execute does not exist: 'C:\Users\Administrator\.dotnet\tools\.store\dotnet-aspnet-codegenerator\2.2.0-rtm-35687\dotnet-aspnet-codegenerator\2.2.0-rtm-35687\tools\netcoreapp2.1\any\

    vs code mvc搭建基架执行命令操作出现的问题解决方式重新复制拷贝一份2.2.0命名为2.2.0-rtm-35687, 修改

  2. 20171017数据处理sql

    SELECT LEFT(RIGHT(进场时间,8),2), 车牌号,进场时间,支付时间 FROM 停车收费详情$;1是周日,7是周六SELECT COUNT(*),周几 FROM date_parts ...

  3. docker daemon 配置代理

    创建插件目录 sudo mkdir -p /etc/systemd/system/docker.service.d 编写proxy配置文件 #vim /etc/systemd/system/docke ...

  4. postgresql之json操作

    --string 转 json select '{"Items":[{"Id":1,"InitStartDate":"2018-0 ...

  5. ZOJ 2477 Magic Cube(魔方)

    ZOJ 2477 Magic Cube(魔方) Time Limit: 2 Seconds      Memory Limit: 65536 KB This is a very popular gam ...

  6. Zynq PS和PL间的连接

    跨越PS和PL的信号 AXI总线.EMIO.其他(看门狗.重启信号.中断信号.DMA接口信号) AXI标准 AXI(高级可扩展接口)是ARM AMBA的一部分.AMBA总线主要用于片上系统.AXI总线 ...

  7. 5、Docker容器网络

    使用Linux进行IP层网络管理的指     http://linux-ip.net/html/ # yum install iproute http://linux-ip.net/html/tool ...

  8. java基础--集合框架的认识

    一.集合框架 对于不知道存储数量和更复杂的方式存储对象用集合框架. 其中有几个常用的接口和实现类:Collection父接口.List接口,Set接口,Map接口, ArrayList实现类.Link ...

  9. SAP ERP SD模块中维护销售人员

    SAP ERP SD模块中维护销售人员信息并分配销售组织   分类: SAPHCM用户指南   在SAP ERP系统,销售和分销(SD)模块中需要创建销售人员(Sales Personnels)消息, ...

  10. CentOS7攻克日记(三) —— 安装Python3.6

    我是在EVERNOTE上面写的,本来格式是有代码段的,结果复制上来就没有了,所以会有一点乱,我就不调整了   我主要安装的是python环境,这一篇主要解决一下python的问题.在这里给个建议,安装 ...