这道题是2018年普及组的第二题,是一个模拟题。

首先计算出双方各自的势力,然后将增援的队伍势力加上,比较此时双方势力,并且作差,最后枚举将公平兵加在哪一个兵营。看似简单的题被我20分钟就写完了,但是调了整整16次!对于“坑”值得警惕!

三个坑点:要用long long;当我copy龙的代替虎的时候一定要注意不再是m-p了,而是p-m了(m-ansp1与ansp2-m同理);当把公平兵全部加在一方时势力差可能要大于原有差,所以这时候也要加在中间。

1.复制代码时一定要考虑两个对象的不同计算,所以不多的话就不要复制前面的。

2.注意看运算结果的数据范围,小心被卡double ,long long...

3.一定要把整体过程把握好

4.不要把简单的题做简单了,想想还有什么情况,切忌盲目自信。

代码:

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#define MAXN 100000
using namespace std;
int n;
int m;//中间阵营
long long force_d=;
long long force_t=;
long long soldier[MAXN+];
long long p1,s1,p2,s2;
long long disparity=;
long long ansp1;
long long ansp2;
long long fabs(long long x){
if(x>=) return x;
else return -x;
}
int main(){
cin>>n;
for(int i=;i<=n;i++){
cin>>soldier[i];
}
cin>>m>>p1>>s1>>s2;
ansp1=;
ansp2=m+;
for(int i=;i<=m-;i++){//龙的势力
force_d=force_d+soldier[i]*(m-i);
}
for(int i=m+;i<=n;i++){//虎的势力
force_t=force_t+soldier[i]*(i-m);
}
if(p1<=m-&&p1<=n){//天降奇兵
force_d=force_d+s1*(m-p1);
}
else if(p1>=m+&&p1<=n){
force_t=force_t+s1*(p1-m);
}
else if(p1==m&&p1<=n){
force_t=force_t;
force_d=force_d;
}
//cout<<"气势"<<force_d<<" "<<force_t<<" ";
if(force_t>force_d){//虎大,加在龙营
disparity=force_t-force_d;
for(int i=;i<=m-;i++){
if(fabs(s2*(m-i)-disparity)<fabs(s2*(m-ansp1)-disparity)){
ansp1=i;
}
}
//cout<<endl;
//cout<<abs(s2*(m-ansp1[cnt])-disparity);
if(disparity>fabs(s2*(m-ansp1)-disparity)) cout<<ansp1;
else cout<<m;
return ;
}
else if(force_t<force_d){//龙大,加在虎营地
disparity=force_d-force_t;
for(int i=m+;i<=n;i++){
if(fabs(s2*(i-m)-disparity)<fabs(s2*(ansp2-m)-disparity)){
ansp2=i;
}
}
// cout<<abs(s2*(m-ansp2[cnt])-disparity);
if(disparity>fabs(s2*(ansp2-m)-disparity)) cout<<ansp2;
else cout<<m;
return ;
}
else if(force_t==force_d){
cout<<m;
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 龙虎斗 题解

    这题真是*到家了QAQ 我在考场上调了将近75min,总算过了大样例. 首先,我们可以简化这一题,这道题的本质就是让我们找出一个点p2,往那个点上面加上s2个单位的重量,使得以m为中的两边的权值和的差 ...

  5. 洛谷 P5016 龙虎斗

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

  6. 题解 P5016 【龙虎斗】

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

  7. bzoj P5016[Snoi2017]一个简单的询问——solution

    Description 给你一个长度为N的序列ai,1≤i≤N和q组询问,每组询问读入l1,r1,l2,r2,需输出   get(l,r,x)表示计算区间[l,r]中,数字x出现了多少次. Input ...

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

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

  9. 《阿Q正传》读后感

    kindle大法好. 利用坐车的时间阅读完了鲁迅先生写的<阿Q正传>, 心中感慨良多, 记下等以后翻看这些摸不着的回忆吧. 我没看过实体书版, 电子书版的<阿Q正传>注解很详细 ...

随机推荐

  1. C#Regex中replace方法的替换自定义小数点后的内容

    $1应该就是引用了这个组,不用这个会匹配不到 /// <summary> /// 截取 /// </summary> /// <param name="n&qu ...

  2. excel解决日常问题记录

    =MOD(ROW(),2)和=TEXT(B2487-B2486,"[h]:mm:ss"),我利用excel分析出了延迟的数据 比较2个字符串是否一样:=EXACT(A2,F2) 公 ...

  3. js dom 添加类

    var sheng = document.getElementById("sheng"); ; sheng.onclick = function() { if(this.paren ...

  4. DNS预读取 dns-prefetch 提升页面载入速度

    DNS Prefetch,即DNS预获取,是前端优化的一部分.一般来说,在前端优化中与 DNS 有关的有两点: 一个是减少DNS的请求次数,另一个就是进行DNS预获取 . DNS 作为互联网的基础协议 ...

  5. asp.net批量下载

    1.首先读取文件夹下的文件,可能同时存在多个文件 2.选中文件,然后点击下载,同时可以选择多个文件. 思路:通过生产压缩包的形式进行下载,然后再清楚压缩包,这样用户可以一次性全部下载下来. 一.获取目 ...

  6. 【Leetcode】2的幂(整数的二进制形式,与运算)

    class Solution { public: bool isPowerOfTwo(int n) { ) return false; )) == ; } }; 注: 1) 2的幂函数,其y值大于0: ...

  7. tf.random_uniform出错tensorflow2.0出错

    https://blog.csdn.net/hhy_csdn/article/details/82263007 https://blog.csdn.net/weixin_44038165/articl ...

  8. msf生成后门拿shell

    0X01简介 这里我本来想学习 msf利用漏洞反弹shell的 但是 没有靶机....等找了靶机在弄吧 kali 172.18.5.118 靶机  172.18.5.240 先尝试能不能ping通 好 ...

  9. [CSP-S模拟测试]:彩球问题(记忆化搜索)

    题目传送门(内部题91) 输入格式 第一行一个正整数$N$,表示颜色种类数. 第二行$N$个正整数$k[i],k[i]$表示第$i$种颜色的数量$(1\leqslant k[i]\leqslant 3 ...

  10. SpringMvc中ModelAndView模型的应用

    /** * 目标方法的返回值可以是 ModelAndView 类型. * 其中可以包含视图和模型信息 * SpringMVC 会把 ModelAndView 的 model 中数据放入到 reques ...