随笔分类 -  洛谷

摘要:链接:Miku 这道题和线段树有什么关系 很简单的贪心,如果一堆牌比左边的大,那么肯定是要加上他的差的 反正,顺手出掉就可以了 #include<iostream> using namespace std; long long ans; long long last; int n; long lon 阅读全文
posted @ 2020-02-24 15:55 Simex 阅读(154) 评论(0) 推荐(0)
摘要:链接:Miku 再见了,我的公主! 去除题面,这就是一道线段树板子题,暴力枚举每一个区间然后去最大值就可以了 有星星重叠?本来就是在那个点加上去,继续加就可以了 这就是道裸的区间和+单点修改 以及,为了省事,我的线段树直接把右端点搞成了100000,毕竟一堆零没有任何影响 #include<iost 阅读全文
posted @ 2020-02-23 19:10 Simex 阅读(185) 评论(0) 推荐(0)
摘要:链接:Miku 线段树水题 单点修改+区间最大值查询 这道题比板子很简单,因为懒标记不用写 为什么呢,懒标记什么时候用?我们要修改的区间完全覆盖了某个区间的时候 全是单点修改还能覆盖谁?只有他自己啊。 那还懒什么,懒不了 因为在洛谷上的要求是大于原来的成绩再修改,所以我们修改的时候还要加个判断 至于 阅读全文
posted @ 2020-02-23 17:19 Simex 阅读(138) 评论(0) 推荐(0)
摘要:链接:Miku 欸,为什么我第一遍没过 #include<iostream> using namespace std; int n; int ans[10000]; int l=1; int main(){ cin>>n; ans[l]=n; if(n==27) cout<<324342; whil 阅读全文
posted @ 2020-02-22 20:22 Simex 阅读(243) 评论(2) 推荐(0)
摘要:链接:Miku 天哪,这道水题我第一次做的时候写了些什么鬼 重构水题代码 特别是当年竟然没过的 #include<iostream> using namespace std; int n; int a[300]; int f; int now=1; int ans[50000]; int sum; 阅读全文
posted @ 2020-02-22 20:21 Simex 阅读(173) 评论(0) 推荐(0)
摘要:链接:Miku 这道题可以帮你深入了解懒标记的意义 蒟蒻本来想通过蒟蒻做法做的,就是种树就在位置+1,砍了-1,然而发现这样做会砍掉不存在的树 然而懒标记这个东西,为什么一定要是加或减呢?标记成这个区间需要修改成什么也可以呀 一开始的种树,就相当于把整个区间赋值为1,而砍树,就相当于把这个区间赋值为 阅读全文
posted @ 2020-02-22 20:00 Simex 阅读(118) 评论(0) 推荐(0)
摘要:线段是是一个很好用的数据结构,特别是在于长长的板子 链接:Miku 先来一份线段树1的代码 #include<iostream> #include<cstdio> #include<algorithm> int n,m; long long sum[400005], lazy[400005]; in 阅读全文
posted @ 2020-02-22 18:28 Simex 阅读(122) 评论(0) 推荐(0)
摘要:链接:Miku 一道非常水的静态区间查询的问题。 为什么说他水呢,在洛谷上的数据实在太弱,直接n^2暴力预处理都行 然而我是不会那么干的,我选择了st表 在这道题中,只要加上一个gcd函数,然后把转移的和询问的方式改成两个区间gcd的方式就可以了 #include<iostream> #includ 阅读全文
posted @ 2020-02-22 08:14 Simex 阅读(216) 评论(0) 推荐(0)
摘要:链接:Miku 非常水,套公式 #include<iostream> using namespace std; int n,m; int ans1; int ans2; int a; int b; int main(){ cin>>n>>m; if(n>m) swap(n,m); for(int i 阅读全文
posted @ 2020-02-17 21:57 Simex 阅读(151) 评论(0) 推荐(0)
摘要:链接:Miku 对于这个题,我们对于每一个数i,分别求出所有比它小的,在它前面的和 比它大的,在它后面的,然后把这两个乘起来,然后再把这些积加起来就可以了 然而这样直接做复杂度太高了,我们要优化,仿照树状数组求逆序对的方法,我们就可以在可以接受的时间内求出并且解决问题了 #include<iostr 阅读全文
posted @ 2020-02-15 19:05 Simex 阅读(110) 评论(0) 推荐(0)
摘要:链接:Miku 这道题虽说是要偶数个数的数的异或和,但是这就是等于区间奇数个数的数的异或和异或上数的种类的异或和 然后奇数这部分可以用前缀异或和来解决,至于种类的问题,就和HH的项链方法一样了 #include<iostream> #include<cstdio> #include<algorith 阅读全文
posted @ 2020-02-15 18:57 Simex 阅读(163) 评论(0) 推荐(0)
摘要:链接:Miku %%%ljx巨佬会莫队 这道题可以用树状数组过 首先,把所有询问按照右端点从小到大排序,这个很容易想到,然后非常容易想到,建立一个数组f, 如果数字a在i出现了,就再f[i]=1,然后统计一下区间和就可以了,当然,用树状数组优化 然而考虑一下这样的问题:区间不包含这个数了,这个数重复 阅读全文
posted @ 2020-02-15 18:34 Simex 阅读(108) 评论(0) 推荐(0)
摘要:链接:Miku 蒟蒻在线%lmk,ljx,lpy,yyq大佬们 Good Night Good luck 这是一道巨大的模拟题,我的做法是创建一块大画布,然后从后往前覆盖即可,具体实现,离不开代码 #include<iostream> #include<cstdio> using namespace 阅读全文
posted @ 2020-02-14 23:00 Simex 阅读(198) 评论(2) 推荐(0)
摘要:链接:Miku 这一个问题考虑为两种问题 1:剩下的砝码有什么情况? 2:能拼出多少种? 对于1:没有办法,只能爆搜所有情况 对于2:用一个改良的01背包就可以解决 #include<iostream> #include<cstdio> #include<cstring> using namespa 阅读全文
posted @ 2020-02-08 15:29 Simex 阅读(150) 评论(1) 推荐(1)
摘要:链接:Miku 这是一道背包,但是对于放东西有条件限制 首先思考,对于每一个物品,除非放不了,否则就要放,不放上就吃掉,肯定不能扔那不管 我们定义dp[i][j]为第i个物品,高度为j的时候能活的最长时间,那么整个转移过程就是 for(int i=1;i<=g;++i){ for(int j=0;j 阅读全文
posted @ 2020-02-07 21:04 Simex 阅读(158) 评论(0) 推荐(0)
摘要:链接:Miku 题目描述一脸懵逼 这道题本质上是两个完全背包而已。首先,对于每个船,他所能装的最大货物价值是一定的, 我们可以跑完全背包求出每艘船能装的最大价值 然后考虑需求,虽然说题目是把一块大石头分割成小石头,不过我们倒着想,把许多小石头拼成一个大石头不也是一样吗?并且如果石头的体积大于1,那么 阅读全文
posted @ 2020-02-07 19:59 Simex 阅读(135) 评论(0) 推荐(0)
摘要:链接:Miku 这道题还是个背包 首先看一下声音的组成,对于每一个农场的声音,它是由两部分组成的 :上一个农场的声音-1(如果有的话)+这个农场的声音(如果有的话) ,并且声音也之和上个农场的总声音有关(注意,总声音,上个)和这个农场,所以我们可以递推出每一个农场的声音。 那么每一个声音代表多少牛呢 阅读全文
posted @ 2020-02-07 18:44 Simex 阅读(172) 评论(2) 推荐(0)
摘要:链接:Miku 这就是一个完全背包的板子题 我们把重量当作重量,开销当作价值,那么这个题就是个求价值最小的完全背包 然而题目上说了是不少于,也就是说最优解不一定恰好就是买h磅的时候,怎么办呢? 只要多余h就行了的话,我们就在h+x的范围内找一个最小值不就可以了? 1 #include<iostrea 阅读全文
posted @ 2020-02-04 18:29 Simex 阅读(163) 评论(0) 推荐(0)
摘要:链接:Miku 这题没边界,用bfs比较好 与处理完了就没什么好说的特别之处 #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; int safe[305][305]; 阅读全文
posted @ 2020-02-02 16:41 Simex 阅读(251) 评论(0) 推荐(0)
摘要:链接:Miku 这道题给了我一个惨痛的教训 虽然说我是被学信息学不用写字吸引的,但是做题必须证明,必须动笔证明! 本蒟蒻被绿题卡了3个小时有感 这道题最后写出来发现并不是怎么很难啊,为了无后效性,我们倒着搜索每一个任务,因为任务的特殊要求,我们开一个数组记录这个时候的 开始的任务数。对于每一个时间, 阅读全文
posted @ 2020-02-02 16:39 Simex 阅读(105) 评论(0) 推荐(0)