这次BC终于不像上次一样惨烈 终于A了三题……

终测ing……

发一波题解……

A.Price List

A题十分无脑 只要把所有数加起来存到sum里 询问的时候大于sum输出1 否则输出0就行了……

犹豫了好久 怎么会这么简单……

看群里好多人卡在了%I64d……

 #include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
#include<map>
#include<vector>
#include<queue>
#define M(a,b) memset(a,b,sizeof(a))
using namespace std;
int main(){
int T;
scanf("%d",&T);
while(T--){
int n,m;
scanf("%d%d",&n,&m);
long long sum=,a;
for(int i=;i<n;i++){
scanf("%I64d",&a);
sum+=a;
}
for(int i=;i<m;i++){
scanf("%I64d",&a);
if(a>sum) printf("");
else printf("");
}
puts("");
}
return ;
}

B.NanoApe Loves Sequence

B题就是自行模拟一下就好了……

cha[i]是这个数和前一个数的差……

记录最大的差maxc和i的位置loc……

首先处理去掉开头和结尾的情况……

然后处理中间的情况……

处理到loc和loc-1单独处理……

边界没处理好 WA了6次……

感觉是做麻烦了……

 #include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
#include<map>
#include<vector>
#include<queue>
#define M(a,b) memset(a,b,sizeof(a))
using namespace std;
int num[];
int cha[];
int main(){
int T;
scanf("%d",&T);
while(T--){
int n;
int loc;
int maxc=-;
int maxn=-;
long long ans=;
scanf("%d",&n);
scanf("%d",&num[]);
for(int i=;i<n;i++){
scanf("%d",&num[i]);
cha[i]=abs(num[i]-num[i-]);
if(cha[i]>maxc){
maxc=cha[i];
loc=i;
}
}
for(int i=;i<n;i++){
if(cha[i]>maxn) maxn=cha[i];
}
// printf("%d\n",maxn);
ans+=maxn;
maxn=-;
for(int i=;i<n-;i++){
if(cha[i]>maxn) maxn=cha[i];
}
// printf("%d\n",maxn);
ans+=maxn;
for(int i=;i<n-;i++){
if(loc==i){
int used=-;
for(int j=;j<n;j++){
if(j==i+) continue;
if(j==i){
if(used<abs(num[i+]-num[i-]))
used=abs(num[i+]-num[i-]);
}
else if(cha[j]>used) used=cha[j];
}
ans+=used;
continue;
}
if(loc-==i){
int used=-;
for(int j=;j<n;j++){
if(j==loc) continue;
if(j==loc-){
if(used<abs(num[j+]-num[j-]))
used=abs(num[j+]-num[j-]);
}
else if(cha[j]>used) used=cha[j];
}
ans+=used;
continue;
}
if(maxc>abs(num[i+]-num[i-])) ans+=maxc;
else ans+=abs(num[i+]-num[i-]);
// printf("%I64d\n",ans);
}
printf("%I64d\n",ans);
}
return ;
}

C.NanoApe Loves Sequence Ⅱ

记录下当前位置是从开始第几大……
然后累加当前位置结尾的倒数第k大的位置……
讲道理这道题很看感觉……
 #include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
#include<map>
#include<vector>
#include<queue>
#define M(a,b) memset(a,b,sizeof(a))
using namespace std;
int num[];
int p[];
int main(){
int T;
scanf("%d",&T);
while(T--){
int n,m,k;
scanf("%d%d%d",&n,&m,&k);
int tmp=;
long long ans=;
for(int i=;i<n;i++){
scanf("%d",&num[i]);
if(num[i]>=m){
p[tmp++]=i;
if(tmp>=k)
ans+=(p[tmp-k]+);
}
else if(i+>=k&&tmp>=k)
ans+=(p[tmp-k]+);
}
printf("%I64d\n",ans);
}
return ;
}

BestCoder Round #86 A B C的更多相关文章

  1. [HDU5807] [BestCoder Round #86 1004] Keep In Touch (DP)

    [HDU5807] [BestCoder Round #86 1004] Keep In Touch (DP) 题面 有三个人从一张N个点无重边的有向无环图上的三个点出发,每单位时间,他们分别选择当前 ...

  2. BestCoder Round #86

    A题 Price List 巨水..........水的不敢相信. #include <cstdio> typedef long long LL; int main() { int T; ...

  3. BestCoder Round #86 解题报告

    A.Price List Sol 求和查询 Code #include<cstdio> #include<algorithm> #include<iostream> ...

  4. HDU 5805 NanoApe Loves Sequence (思维题) BestCoder Round #86 1002

    题目:传送门. 题意:题目说的是求期望,其实翻译过来意思就是:一个长度为 n 的数列(n>=3),按顺序删除其中每一个数,每次删除都是建立在最原始数列的基础上进行的,算出每次操作后得到的新数列的 ...

  5. BestCoder Round #86 部分题解

    Price List 题意: 有n件商品,每天只能买一件,并且会记录账本,问有多少次一定记多了? 题解: 就是求和,最后如果大于和就输出1,否则0. 代码: #include <bits/std ...

  6. HDU5808Price List Strike Back (BestCoder Round #86 E) cdq分治+背包

    严格按题解写,看能不能形成sum,只需要分割当前sum怎么由两边组成就好 #include <cstdio> #include <cstring> #include <c ...

  7. HDU5807 Keep In Touch (BestCoder Round #86 D ) 分布式dp

    #include <cstdio> #include <cstring> #include <cmath> #include <vector> #inc ...

  8. HDU5806 NanoApe Loves Sequence Ⅱ (BestCoder Round #86 C)二分

    分析:大于等于m的变成1,否则变成0,预处理前缀和,枚举起点,找到第一个点前缀和大于m即可 找第一个点可以二分可以尺取 #include <cstdio> #include <cst ...

  9. HDU5805 NanoApe Loves Sequence (BestCoder Round #86 B)前后缀预处理

    分析:维护空隙的差,然后预处理前缀最大,后缀最大,扫一遍 #include <cstdio> #include <cstring> #include <cmath> ...

  10. HDU5804 Price List (BestCoder Round #86 A)水题

    分析:大于总和输出1 #include <cstdio> #include <cstring> #include <algorithm> using namespa ...

随机推荐

  1. Gentoo/Arch常用软件配置

    ## Desktop Environment ### GNOME ### KDE ### LXDE ### Xfce ## Window Managers ### dwm x11-wm/dwm ### ...

  2. svn客户端的安装与中文版本语言库

    首先在mac下下载svn或者其他软件请看另一篇博客链接:http://www.cnblogs.com/minyc/p/myc201606191543.html 另附svn常用命令操作详解:http:/ ...

  3. 提示找不到xml配置文件

    ClassPathXmlApplicationContext("applicationContext.xml")默认文件夹是resouerces,所以要把xml文件放在这个下面.

  4. python 3.5构建WINDOWS推送服务

    import ConfigParser import os import sys cf = ConfigParser.ConfigParser() #绝对路径获取 ABSPATH=os.path.ab ...

  5. docker openvswitch网络方案

    1. 测试环境 75机(10.11.150.75):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 74机(10.11.150 ...

  6. JavaFX基础学习之OkHttp/Gson2

    222 package application; import java.io.IOException; import java.net.URL; import java.util.ResourceB ...

  7. C#使用SqlDataAdapter 实现数据的批量插入和更新

    近日由于项目要求在需要实现中型数据的批量插入和更新,晚上无聊,在网上看到看到这样的一个实现方法,特摘抄过来,以便以后可能用到参考. 一.数据的插入 DateTime begin = DateTime. ...

  8. jquery对象介绍及一些jquery小特效

    一.jquery对象的介绍. 引入jquery库后,通过形如$("#id")的方式得到的对象叫做jquery对象.如var $uu = $("#username" ...

  9. 在Linux中让文本显示带颜色的字。

    在linux中让echo命令显示带颜色的字需要使用参数-e 格式:echo -e "\33[字体背景颜色:文字颜色m字符转\033[0m" 注: 1.字体背景颜色和文字颜色之间是英 ...

  10. ARM应用调试思路、方法总结、笔记

    一.应用调试1:使用strace命令来跟踪系统调用 二.应用调试2:使用GDB来调试应用程序 编译gdb,gdbservertar xjf gdb-7.4.tar.bz2cd gdb-7.4/./co ...