codevs
酒酿小河桃
这个作者很懒,什么都没留下…
展开
-
codevs1080 线段树(区间修改+区间求和
找了一会儿bugchanged里面 递归到最深处时 应该修改tr[now].sumc手胡写成tr[sum].l找了很久时间证明debug()函数是个好东西啊…以及题解里面的线段树看不懂…逼着自己写…#include#define maxn 100001using namespace std;template void read(T &x){ x=0;int f原创 2017-09-23 15:55:08 · 378 阅读 · 0 评论 -
codevs1098 均分纸牌
可考虑负值参与计算简化模拟过程#includeusing namespace std;template void read(T &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1; for(;isdigit(ch);ch=getchar())x=(x<<1)+(x<原创 2017-09-11 14:44:52 · 207 阅读 · 0 评论 -
codevs1501 二叉树的最大宽度与深度
前前后后wa了三次读错题意一次初始赋值错一次状态转移错一次手动造数据比较重要哎#includeusing namespace std;template void read(T &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1; for(;isdigit原创 2017-09-11 07:17:36 · 141 阅读 · 0 评论 -
codevs3143 二叉树的遍历
递归实在太好看了#includeusing namespace std;template void read(T &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1; for(;isdigit(ch);ch=getchar())x=(x<<1)+(x<<3)+ch-'0原创 2017-09-11 14:13:12 · 160 阅读 · 0 评论 -
codevs3145 汉诺塔
递归真的太好看辣拿到新题还是不太会想到以及终于断断续续做完codevs白银天梯!#includeusing namespace std;template void read(T &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1; for(;isdigit(ch原创 2017-09-11 14:32:27 · 184 阅读 · 0 评论 -
codevs3115 高精度减法
论 -‘0’ 的重要性#includeusing namespace std;template void read(T &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1; for(;isdigit(ch);ch=getchar())x=(x<<1)+(x<<3)+ch原创 2017-09-11 19:02:45 · 197 阅读 · 0 评论 -
codevs3117 高精度乘法
处理好进位#includeusing namespace std;template void read(T &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1; for(;isdigit(ch);ch=getchar())x=(x<<1)+(x<<3)+ch-'0';原创 2017-09-11 19:04:03 · 207 阅读 · 0 评论 -
luogu2956 [USACO09OCT]机器人犁田The Robot Plow
题目描述Farmer John has purchased a new robotic plow in order to relieve him from the drudgery of plowing field after field after field. It achieves this goal but at a slight disadvantage: the robotic原创 2017-09-28 18:30:16 · 953 阅读 · 1 评论 -
luogu2666 Bessie的秘密牧场
题目背景背景就是描述,描述就是背景。题目描述Farmmer John最近收割了几乎无限多块牧草,将它们堆放在空地上。这些牧草都是正方形的,而且都有非负整数长度的边长(当然有0)。一天它的奶牛Bessie发现了这些美味的牧草,于是希望把它们种在自己的秘密牧场上。他总将草皮分割成1*1的小块,以放入他牧场上的N个格子中。Bessie感兴趣的是,她若选取四块会有多少种不同方法。如果N=4原创 2017-09-28 18:58:20 · 578 阅读 · 0 评论 -
codevs1063 luogu1090 合并果子
题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省原创 2017-09-20 19:58:23 · 225 阅读 · 0 评论 -
codevs1214 线段覆盖
贪心将右端点按从小到大的顺序排序从最小的不重叠的开始贪#includeusing namespace std;template void read(T &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1; for(;isdigit(ch);ch=getchar(原创 2017-09-11 19:08:41 · 171 阅读 · 0 评论 -
codevs3731 luogu2296 寻找道路
图论第二题课件里面给出的标算是bfs求最短路【不知道怎么写bfs的心痛于是开始自己折腾考虑再建立一个反向的图从终点做一遍dijkstra找出终点走不到的点将出边指向这些点的点标记从起点做dijkstra不选被标记的点写起来很流畅可调bug用了很长时间每次调bug都会有很深的体会1、赋初值真的要细致2、dijkstra一开始千万不要写vis[s原创 2017-09-14 22:34:31 · 240 阅读 · 0 评论 -
codevs2209 luogu1968 美元汇率
题目描述在以后的若干天里戴维将学习美元与德国马克的汇率。编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值。输入输出格式输入格式:输入文件的第一行是一个自然数N,1≤N≤100,表示戴维学习汇率的天数。接下来的N行中每行是一个自然数A,1≤A≤1000。第i+1行的A表示预先知道的第i+1天的平均汇率,在这一天中,原创 2017-09-24 19:57:27 · 269 阅读 · 0 评论 -
codevs1068 乌龟棋
f[0][0][0][0]没有赋初值debug到心累#includeusing namespace std;template void read(T &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1; for(;isdigit(ch);ch=getchar())x原创 2017-09-11 19:00:51 · 208 阅读 · 0 评论 -
codevs1058 luogu1091 合唱队形
题目描述N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1Ti+1>…>TK(1你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。输入输出格式输入格式原创 2017-09-24 20:18:38 · 222 阅读 · 0 评论 -
codevs1078 最小生成树
最小生成树裸题#include#define maxn 10005using namespace std;template void read(T &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1; for(;isdigit(ch);ch=getchar())x=(原创 2017-09-15 18:58:20 · 254 阅读 · 0 评论 -
codevs2298 石子合并(直线形
题目描述 Description 在一个操场上摆放着一排N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。 试设计一个算法,计算出将N堆石子合并成一堆的最小得分。输入描述 Input Description 第一行是一个数N。 以下N行每行一个数A,表示石子数目。原创 2017-09-25 19:49:47 · 197 阅读 · 0 评论 -
codevs2180 字符串距离
题目描述 Description设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为“abcbcd”,则字符串“abcb□cd”,“□a□bcbcd□”和“abcb□cd□”都是X的扩展串,这里“□”代表空格字符。如果A1是字符串A的扩展串,B1是字符串B的扩展串,A1与B1具有相同的长度,那么我们定义字符串A1与B1的距离为相应位置上的字符的原创 2017-09-25 18:56:20 · 317 阅读 · 0 评论 -
luoguP1314 codevs1138 聪明的质监员
最重要的还是看出线性关系吧有单调性和数据范围大概可以想到二分再写个前缀和就ok每次写都找不出bug…#include#define maxn 200001#define Inf 1e9using namespace std;typedef long long LL;template void read(T &x){ x=0;int f=1;char ch=getcha原创 2017-09-18 14:51:34 · 498 阅读 · 0 评论 -
codevs1217 luogu1083 借教室
现在看题都是一眼暴力的啊暴力真的会出奇迹真的是想不到二分顶多想想线段树但是不会敲【T^T45分纯暴力#include#define maxn 100001using namespace std;template void read(T &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=g原创 2017-09-17 20:53:55 · 199 阅读 · 0 评论 -
codevs4748 luogu2678 跳石头
经典的二分答案#include#define maxn 500010using namespace std;template void read(T &x){ x=0;int f=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1; for(;isdigit(ch);ch=getchar())x=原创 2017-09-17 20:16:05 · 539 阅读 · 0 评论 -
codevs1069 luogu1525 关押罪犯
贪心的思路并不难想关键是如何维护两人不在同一监狱中并查集补集的思想真的巧妙花了一点时间来理解补集的意思如果a和b在同一集合中,说明a和b不在同一个监狱里面如果b和c在同一集合中,说明b和c不在同一个监狱里面如果上述两者同时成立,即a和c在同一集合中,那么a与c一定在同一个监狱中,不符合,可直接输出答案那么排序后从大到小开始枚举如果A和B不在同一集合中就合并A和B原创 2017-09-20 15:30:58 · 253 阅读 · 0 评论