BestCoder Round #86 A B C
这次BC终于不像上次一样惨烈 终于A了三题……
终测ing……
发一波题解……
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题就是自行模拟一下就好了……
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 ;
}
#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的更多相关文章
- [HDU5807] [BestCoder Round #86 1004] Keep In Touch (DP)
[HDU5807] [BestCoder Round #86 1004] Keep In Touch (DP) 题面 有三个人从一张N个点无重边的有向无环图上的三个点出发,每单位时间,他们分别选择当前 ...
- BestCoder Round #86
A题 Price List 巨水..........水的不敢相信. #include <cstdio> typedef long long LL; int main() { int T; ...
- BestCoder Round #86 解题报告
A.Price List Sol 求和查询 Code #include<cstdio> #include<algorithm> #include<iostream> ...
- HDU 5805 NanoApe Loves Sequence (思维题) BestCoder Round #86 1002
题目:传送门. 题意:题目说的是求期望,其实翻译过来意思就是:一个长度为 n 的数列(n>=3),按顺序删除其中每一个数,每次删除都是建立在最原始数列的基础上进行的,算出每次操作后得到的新数列的 ...
- BestCoder Round #86 部分题解
Price List 题意: 有n件商品,每天只能买一件,并且会记录账本,问有多少次一定记多了? 题解: 就是求和,最后如果大于和就输出1,否则0. 代码: #include <bits/std ...
- HDU5808Price List Strike Back (BestCoder Round #86 E) cdq分治+背包
严格按题解写,看能不能形成sum,只需要分割当前sum怎么由两边组成就好 #include <cstdio> #include <cstring> #include <c ...
- HDU5807 Keep In Touch (BestCoder Round #86 D ) 分布式dp
#include <cstdio> #include <cstring> #include <cmath> #include <vector> #inc ...
- HDU5806 NanoApe Loves Sequence Ⅱ (BestCoder Round #86 C)二分
分析:大于等于m的变成1,否则变成0,预处理前缀和,枚举起点,找到第一个点前缀和大于m即可 找第一个点可以二分可以尺取 #include <cstdio> #include <cst ...
- HDU5805 NanoApe Loves Sequence (BestCoder Round #86 B)前后缀预处理
分析:维护空隙的差,然后预处理前缀最大,后缀最大,扫一遍 #include <cstdio> #include <cstring> #include <cmath> ...
- HDU5804 Price List (BestCoder Round #86 A)水题
分析:大于总和输出1 #include <cstdio> #include <cstring> #include <algorithm> using namespa ...
随机推荐
- 排序 之 快排、归并、插入 - <时间复杂度>----掌握思想和过程
俗话说:天下武功无坚不破,唯快不破.对于算法当然也是要使用时间最短.占用空间最小的算法来实现了. 注意:我代码里面打的备注仅供参考,建议不要背模板(因为没有固定的模板),可以写一个数列按着代码跑两圈或 ...
- Canvas裁剪和Region、RegionIterator
主要是看这边文章学习:http://blog.csdn.net/lonelyroamer/article/details/8349601 Region.op参数 DIFFERENCE(0), //最终 ...
- November 12th 2016 Week 46th Saturday
Never love anyone who treats you like you are ordinary. 请爱那些爱你的人. Don't waste your limited energy on ...
- Ajax实现页面动态加载,添加数据
前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Products ...
- CSS 效果汇总
只要决心够, 就能征服痛苦. 把一些常用的 CSS 效果记录下来 1. 利用 z-index :hover 显示层 github 效果地址>> 此效果主要利用 a:hover 来改变 sp ...
- HDU 1329 Hanoi Tower Troubles Again!(乱搞)
Hanoi Tower Troubles Again! Problem Description People stopped moving discs from peg to peg after th ...
- vga显示彩条
vga显示驱动程序可分为扫描行列和行列同步两个部分 //注意:只有在有效区域内给vga赋值才会有颜色变化 assign vga_b = isready ? vga_s[:] :'d0; assign ...
- i++与++i区别使用
中心:使用变量自增或者处减使用尽量使用++i与--i,而不要去使用i++与i-- ++i与--i可以做左值也可以做右值,而i++与i--只能做右值. 对于基础类型i++与++i结果相同,但是i++肯定 ...
- Topself 方便调试的Window服务框架
Installing Topshelf nuget Install-Package Topshelf public class TownCrier { readonly Timer _timer; p ...
- 【翻译】从github部署Tutorial文件
Tips:原文链接:http://ccoenraets.github.io/cordova-tutorial/setup-files.html 删除workshop/www文件夹下面都全部内容 从gi ...