luogu2305 解题报告

来源:互联网 发布:淘宝的亲淘停止服务了 编辑:程序博客网 时间:2024/06/18 18:37

第一次写这种什么玩意,求大神指教。

真相如图

这里写图片描述
洛谷2305 “不断进步”的八尾勇
本题地址: http://www.luogu.org/problem/show?pid=2305

题目描述
noip训练时,我们的勇姐做了大量的模拟比赛——能力有限,当然没法每一场都AK(All Kill)。结果其父过来“关心”她的模拟比赛成绩。
八尾勇为了造成自己不断进步的假象,打算篡改自己的成绩。
她为了对得起自己的良心,不会真的篡改,而是将相邻的两场比赛合并为一场,分数累加,变成了一场分数为之前两场之和的大比赛。
之前题目题意有些歧义更正如下
八尾勇是这么处理的:她从前往后扫一遍成绩,发现第一个“不和谐”的成绩,就将这场比赛并入这场比赛后面的一场比赛。然后如此反复。第一个“不和谐”的意思是一组数列中第一个不满足单调不减的数字。
如果没有后面的比赛可以加,那就加到前面的一个的成绩中去。
新增一组样例

已经合并比赛可以再次进行合并。
八尾勇的父亲只关心分数的高低,才不管满分多少。八尾勇希望通过最少的合并次数,变成一个单调不减的成绩单
输入输出格式
输入格式:
第一行一个整数N
第二行,N个整数,分别表示这N次比赛的成绩

输出格式:
一个整数,表示最小合并次数。

输入输出样例
输入样例#1:
92 3 5 1 2 4 8 7 8输出样例#1:
3输入样例#2:
43 2 6 7输出样例#2:
2
说明
样例解释1
2 3 5 【1 2】 4 8 7 8
2 3 5 【3 4】 8 7 8
2 3 5 7 8 【7 8】
2 3 5 7 8 15
一共合并3次

样例解释2
3 【2 6】 7
3 【8 7】
3 15
2次,而不是直接【3 2】6 7。因为第一个“不和谐”的成绩是2

对于40%的数据,0<=N<=2000
对于100%的数据,0<=N<=200000,成绩的范围均0<=A_i<=2^31-1

这些只是复制的。。。

首先,这只是到简单的模拟(第一次写当然要容易的了。。。)
完全不需要数组!!!读一个处理一个就行了!!!
范围在longlong内
本人AC代码(本人蒟蒻)

#include<iostream>                                //不解释#include<cstdio>using namespace std; int n,cnt=0;long long q=0,h=0,t;                         //n是数量,cnt统计,q是前面的那个数,h是后面的,t用来读int main(){cin>>n;while(n--){scanf("%lld",&t);h+=t;                //读入的数加入后面的数if(h>=q){         //如果可以不作弊,后面的数就成了前面这个数,后面数归零q=h;h=0;}else cnt++;                                          //否则作弊}printf("%d",cnt);                  //输出结果啦ORZ} 

P党(未经提交)

var n,cnt,i:longint;      q,h,t:int64;begincnt:=0;q:=0;h:=0;read(n);for i:=1 to n dobeginread(t);h:=h+t;if(h>=q)beginq:=h;h:=0;endelse  inc(cnt);end;writeln(cnt);end. 
1 0