OI/ACM之其他如贪心
OI/ACM其他如贪心
「已注销」
前oi选手。
重庆市南开中学高2020级毕业生。
重庆大学计算机系2020级学生。
QQ1954486214欢迎添加讨论~
展开
-
洛谷 P3044 [USACO12FEB]Relocation S【最短路】【全排列】
考虑最短路径:start→k1→k2→k3→k4→k5→startstart\rightarrow k_1\rightarrow k_2\rightarrow k_3\rightarrow k_4\rightarrow k_5\rightarrow startstart→k1→k2→k3→k4→k5→start 显然,对于确定的农原创 2021-07-07 20:17:23 · 146 阅读 · 1 评论 -
NKOJ P4251 「NOIP模拟」 直线的交点【树状数组】【离散化】
这道题我考试的时候又智障了……考试的时候我想到了离散化+树状数组,想到了逆序处理交点,但是就是没有想到逆序对……所以谁都不知道做题打比赛的时候会犯一些什么神奇的错误,只能平时多加练习,形成一种好的做题习惯,这样才能在关键的时候去避免它……由于我们只需要考虑直线与直线的交点是否在平板内部,而这样的直线与直线的交点也就相当于这两条直线被平板所截得的两条线段的交点,而这两条线段都是由直线分别与平板的...原创 2018-07-11 23:46:28 · 244 阅读 · 0 评论 -
BZOJ 4390 [Usaco2015 dec] Max Flow【LCA与树上差分】
树上差分板子:#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define db double#define sg string#define ll long long#define re...原创 2018-10-18 10:02:01 · 214 阅读 · 0 评论 -
简单复习一下树上差分的两种操作(边差分与点差分)
边差分即快速统计出每条边在我们执行的操作中出现的次数。sum[i]sum[i]sum[i]表示iii号点到它的父亲的那条边出现的次数。假设接下来我们对x−&amp;amp;gt;yx-&amp;amp;gt;yx−&amp;gt;y这条路径执行了某个操作,需要修改这条路径上的每条边出现的次数。我们只需要维护这条路径的两端与lcalcalca即可:sum[x]++,sum[y]++,sum[lca(x,y)]-=...原创 2018-10-05 16:34:36 · 878 阅读 · 0 评论 -
LOJ #2236. 「JLOI2014」松鼠的新家【树上差分】
板子题:#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define ll long long#define rep(i,x,y) for(ll i=(x);i<=(y);i++)#d...原创 2018-10-05 15:23:22 · 297 阅读 · 0 评论 -
LOJ #537. 「LibreOJ NOIP Round #1」DNA 序列【哈希】
′A′=0,′C′=2,′T′=3,′G′=4&amp;#x27;A&amp;#x27;=0,&amp;#x27;C&amp;#x27;=2,&amp;#x27;T&amp;#x27;=3,&amp;#x27;G&amp;#x27;=4′A′=0,′C′=2,′T′=3,′G′=4然后就可以hash了:#include &lt;map&gt;原创 2018-09-28 19:12:17 · 396 阅读 · 0 评论 -
BZOJ 2783 [JLOI2012]树【倍增一下】
#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define db double#define sg string#define ll long long#define rep(i,x,y)...原创 2018-10-21 14:39:30 · 187 阅读 · 0 评论 -
NKOJ 4974 「NOIP模拟」乌鸦坐飞机【倍增优化DP】
题目描述 qqq只乌鸦要坐机到同一个地方看阿福揍扁成成龙!坐飞机就要到飞机场,一共nnn个飞机场构成了一棵树,编号为111到nnn,其中111号点是所有乌鸦的目的地,所以可以把飞机场的结构视为一棵以111号点为根的有根树。坐飞机就要买飞机票,每个机场都只售111种飞机票,我们用v,dv,dv,d两个参数描述一张飞机票,表示这张飞机票售价为vvv,可以让乌鸦飞到从当前机场到111号机场的路径...原创 2018-08-16 16:48:21 · 531 阅读 · 0 评论 -
HDU 4699 Editor【栈模拟】
a[]a[]a[]记录光标前的内容,b[]b[]b[]记录光标后的内容,sum[i]sum[i]sum[i]表示a[1,i]a[1,i]a[1,i]的和,f[i]f[i]f[i]表示a[1,i]a[1,i]a[1,i]的最大前缀和。栈模拟一下就好了。#include &lt;bits/stdc++.h&gt;using namespace std;const int N=1e6+5...原创 2018-10-25 13:04:15 · 249 阅读 · 0 评论 -
2018.10.15 NOIP2018个人训练赛第一场总结与题解
题目来源:https://www.jisuanke.com/contest/777?view=challengesT1纯暴力时间复杂度O(n2k2)O(n^2k^2)O(n2k2)显然不可取,注意到我们可以通过前缀和优化掉一个kkk,最后的时间复杂度O(n2k)O(n^2k)O(n2k)。由于题目本身难度不大,所以在这里并不直接给出相关模拟推导。数据有一点卡常。被卡掉的909090分代...原创 2018-10-15 02:13:43 · 286 阅读 · 1 评论 -
[USACO3.2.1] Factorials阶乘【模拟】
显然我们只关心最后的非零位,所以我们只需要在每次乘阶乘的时候去掉后面的很多个零:#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define ll long long#define rep(i...原创 2018-10-07 19:01:29 · 300 阅读 · 0 评论 -
NKOJ P2359 「NOIP模拟」Lyric【字符串模拟】
痛过以后 才知情已难寻 吾爱至斯 只剩飞花梦影 回首再望 蜀山依旧伫立 看尽浮沉 独饮回忆 ——《少年情》 旋律动听的曲子,伴着意境深远的lyriclyriclyric而显得更加优美。要想学会一首歌,没有一份装订精美的歌词,你让我情何以堪。 你的任务是,将一份歌词,按照给出规则整理好。 题面真有意思…字符串模拟,认真模拟,把所有信息都存在结构题里面,然后根...原创 2018-07-26 16:16:20 · 203 阅读 · 0 评论 -
「NOIP模拟」 机智的AmyZhi 【模拟】
那年一个雨季,AmyZhiAmyZhiAmyZhi 在校门外弯身买参考书。 这时SiriusRenSiriusRen SiriusRen 走过来,一言不合甩给她一道“自认为”很难的题: 给你一个数字NN N(NNN的范围是1−10000001−1000000 1- 1000000),求一个最小的正整数MM M,这个数字MM M的各个位的数字加上它本身之和恰好为NNN...原创 2018-07-18 15:39:05 · 294 阅读 · 0 评论 -
Codeforces 134 B Pairs of Numbers【枚举】
传送门:http://codeforces.com/contest/134/problem/B题意 对于一个数对(a,b)(a,b)(a,b),我们可以通过一次操作将其变为新数对(a+b,b)(a+b,b)(a+b, b)或(a,a+b)(a,a+b)(a,a+b)。给定一正整数 nnn,问最少需要多少次操作可将数字对(1,1)(1,1)(1, 1)变为一个数字对,该数字对至少有一个数...原创 2018-07-13 15:09:05 · 1070 阅读 · 0 评论 -
POJ P3349 Snowflake Snow Snowflakes【最小表示法】【哈希】
重点应该在于如何表示每个雪花的状态。如果我们统一逆时针或者顺时针,很容易发现,相同的雪花的最小表示法是相同的。所以我们对于每一片雪花,顺着倒着分别做一次最小表示法,然后将结果进行哈希排列一下。另外也比较容易发现的地方在于,对于相同的雪花,将它正着最小表示法后的哈希值与倒着最小表示法后的哈希值的最小值也是唯一的,我们将这个最小值保存下来。如何判断相同?我们将记录下的最小值保存下来排序后去重,...原创 2018-10-09 19:17:00 · 217 阅读 · 0 评论 -
UVa 10288 Coupons【期望】【模拟】
Coupons很简单的题,因为好久没写题解了就水一篇假设当前已有kkk个不同物品,那么获得另一个不同的物品概率为n−kn\frac{n-k}{n}nn−k,那么获得下一个不同的物品的期望次数是nn−k\frac{n}{n-k}n−kn所以答案=nn+nn−1+...+n1=n∑i=1n1n=\frac{n}{n}+\frac{n}{n-1}+...+\frac{n}{1}=n\sum^{n}_{i=1}\frac{1}{n}=nn+n−1n+...+1n=n∑i=1nn1,最后答案以带分原创 2020-11-04 00:43:39 · 162 阅读 · 0 评论 -
BZOJ P4378 「POI2015」Logistyka【树状数组】【离散化】
#include &amp;lt;queue&amp;gt;#include &amp;lt;cmath&amp;gt;#include &amp;lt;cstdio&amp;gt;#include &amp;lt;cstring&amp;gt;#include &amp;lt;iostream&amp;gt;#include &a原创 2018-09-09 23:31:30 · 223 阅读 · 0 评论 -
BZOJ P1818 [Cqoi2010]内部白点【离散化】【树状数组】
扫描线。#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define ll long long#define rep(i,x,y) for(ll i=(x);i<=(y);i++)#d...原创 2018-09-18 20:21:07 · 211 阅读 · 0 评论 -
BZOJ P4659 和谐数【离散化树状数组】
题目分析:这道题没啥好分析的,X表示Ai左边比它大的个数,Y表示Ai右边比它大的个数,我们将Ai离散化后,就只需要求出X,然后就能够推出Y然后进行比较了。求X,也就是求一个序列中某个数的左边比它大的个数有多少个,树状数组直接水过去就可以了。参考代码:#include &lt;cmath&gt;#include &lt;cstdio&gt;#include &lt;cstri...原创 2018-06-14 23:33:10 · 185 阅读 · 0 评论 -
BZOJ P1103 「POI2007」大都市meg【dfs序】【树状数组+差分】
#include <queue>#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define ll long long#define rep(i,x,y) for(ll i=(x)...原创 2018-10-05 16:43:49 · 204 阅读 · 0 评论 -
【复习】【差分数组】【树状数组区间修改】
差分数组的构建即在原数列的基础上,第nnn项与第n−1n-1n−1项做差得到新数列。记a[]a[]a[]为原数组且a[0]=0a[0]=0a[0]=0则差分数组c[]c[]c[]中的任意一项c[i]=a[i]−a[i−1],i>0c[i]=a[i]-a[i-1],i>0c[i]=a[i]−a[i−1],i>0那么a[i]=∑j=1ic[j]a[i]=\sum_{j=1}^ic[j]a[i]=∑j=1ic[j]差分数组的应用当我们需要对数组区间[x,y][x,y][x,y]进行原创 2020-09-14 07:25:16 · 118 阅读 · 0 评论 -
AtCoder Grand Contest 026 A - Colorful Slimes 2【模拟】【并查集】【map】
ProblemStatementProblemStatementProblem Statement Takahashi lives in another world. There are slimes (creatures) of 100001000010000 colors in this world. Let us call these colors Color 1,2,…,10000...原创 2018-07-17 10:29:55 · 368 阅读 · 0 评论 -
LOJ P2086 BZOJ P4653「NOI2016」区间 【线段树】【离散化】
比较水。按照坐标作为叶子结点建立线段树,维护该点被选择的区间覆盖了的次数。将每个区间按照长度排序,在合法条件下每次试探来更新答案。坐标太大,所以将坐标离散化。#include &lt;bits/stdc++.h&gt;#define LL long long#define For(I,X,Y) for(LL I=(X);I&lt;=(Y);I++)#define Fora(I...原创 2018-08-23 23:14:00 · 228 阅读 · 0 评论 -
LOJ P2292 BZOJ P4897「THUSC2016」成绩单【区间DP】【离散化】
又是一道神仙题,我还是太菜了不看题解完全写不出来,其实想到了怎么定状态之后还是比较容易推下去的。首先思考一下数据范围:n≤50n≤50n\leq 50,而最极端的时间复杂度是:O(n5)O(n5)O(n^5),所以我们在定状态的时候就不要担心数组维数过大,放心去做吧。g[i][j]g[i][j]g[i][j]表示消除区间[i,j][i,j][i,j]的最小代价。f[l][r][a][b...原创 2018-08-13 23:16:51 · 335 阅读 · 0 评论 -
LOJ #10152「NOIP2007」 矩阵取数游戏【区间DP】【高精度】
容易发现,单独考虑每一行的取数方案与其他行互不影响,所以我们可以通过单独考虑每一行最后累加答案进行求解。f[i][j]f[i][j]f[i][j]表示消除当前行[i,j][i,j][i,j]的最大得分,考虑每一个数合并到左区间或者右区间得到如下的状态转移方程:f[i][j]=max{f[i][j−1]∗2+w[j],w[i]+f[i+1][j]∗2}f[i][j]=max{f[i][j...原创 2018-08-15 04:33:58 · 297 阅读 · 0 评论 -
NKOJ P4969 抗议 【离散化】【树状数组优化动态规划】
题目描述 约翰家的NNN头奶牛正在排队游行抗议。一些奶牛情绪激动,约翰测算下来,排在第iii位的奶牛的理智度为AiAiA_i,数字可正可负。 约翰希望奶牛在抗议时保持理性,为此,他打算将这条队伍分割成几个小组,每个抗议小组的理智度之和必须大于或等于零。奶牛的队伍已经固定了前后顺序,所以不能交换它们的位置,所以分在一个小组里的奶牛必须是连续位置的。除此之外,分组多少组,每组分多少奶牛,...原创 2018-07-16 11:01:34 · 222 阅读 · 0 评论 -
「NOIP模拟」【2018.11.6晚间训练赛】ping【树状数组】【树上点差分】【dfs序】
问题描述TgopknightTgopknightTgopknight所连接的网络共有nnn个站点,由于经费问题,每两个站点之间有且仅有一条线路,这些站点中有一些损坏了,TgopknightTgopknightTgopknight进行了kkk次测试,每次测试两个站点之间是否连通,由于TgopknightTgopknightTgopknight手气太好,他每次测试的两个站点之间都不连通。Tgopkn...原创 2018-11-07 00:30:05 · 287 阅读 · 0 评论 -
BZOJ 2946 「POI2000」公共串【二分答案】【哈希】
第一反应这道题是不是可以用后缀自动机后缀数组等等可做?可是我这些都不会啊!于是就写了二分答案和哈希…我最开始的时候还把哈希写错了真是太菜了啊。#include <map>#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#inclu...原创 2018-10-24 16:48:58 · 244 阅读 · 0 评论 -
BZOJ 2460 [BJOI2011] 元素【线性基】【贪心】【挖坑】
第一道线性基的题…还是比较简单的…挖个坑:改天补一篇线性基的学习笔记…显然,我们需要用线性基来维护我们选取的非空子集中不存在异或出结果为000的情况,但是我们还需要满足最后得到的权值最大。根据异或的性质我们不难想到可以根据贪心来求解:我们将每件物品按照权值从大到小排序(pairpairpair的小优势就体现出来了),然后不断插入线性基中累加答案。关键代码:#include &l...原创 2018-07-23 01:22:21 · 270 阅读 · 0 评论 -
[COCI 2010/2011 CONTEST #1-4] 糖果【贪心】
问题描述 幼儿园的小孩们收到了一个有MMM颗糖果的大包裹,现在要把这些糖果分给NNN个小孩。 每一个小孩都给出了一个期望的糖果数,如果没有达到他的期望值a[i],a[i],a[i],小孩就会生气。每差一个糖果,小孩的生气指数就会增加。他生气的程度等于他少得到的糖果数的平方。比如,MirkoMirkoMirko想要得到323232个糖果,但是只得到了292929个。他少了333个,所以他的生...原创 2018-07-15 21:44:47 · 644 阅读 · 0 评论 -
贪心—最大区间不相交问题 (加强版)
弱版:https://blog.csdn.net/yanzhenhuai/article/details/81111598让我们继续来思考这样的一个问题 : 给出n条区间的起点和终点(输入保证所有区间都是起点&lt;终点),每一局可以选出若干个之前没有选出的区间,这些区间满足两两无交集(可以某区间的终点与另一区间的起点相同)。 问最少多少局可以选出所有的区间。...原创 2018-07-20 01:08:55 · 1006 阅读 · 0 评论 -
贪心—最大区间不相交问题
思考一个这样的问题: 给出nnn条区间的起点和终点(输入保证所有区间都是起点&amp;lt;终点),问最多可以选出多少个区间使得这些区间两两无交集(可以某区间的终点与另一区间的起点相同)。由于这是贪心的一个经典模型所以直接讲解法不再赘述其他东西。 我们先将这nnn个区间按照终点(边界的右端点)从小到大排序。 假设EndEndEnd为当前已经覆盖的终点(初始化End=−1End=...原创 2018-07-19 10:56:29 · 749 阅读 · 0 评论 -
51Nod 最高的奖励【贪心】【优先队列】(已更正错误)
有NNN个任务,每个任务有一个最晚结束时间以及一个对应的奖励。在结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是111个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。这道题也是一道比较简单的贪心了。因为要贪心嘛,所以一共有NNN天,那么我们就要考虑最后完成NNN个任务。既然想到了这一点,那么我们怎...原创 2018-07-19 03:33:52 · 360 阅读 · 0 评论 -
BZOJ P1691 [Usaco2007 Dec] 挑剔的美食家 【贪心】【set】
这道题呢其实就一个十分普通的贪心,至于怎么实现就有很多种方法,由于用平衡树的人比较多,所以我在这里简单讲一下用#multiset#的做法。简单谈一下心:我们可以分别将牛和草分别按照价格为第一关键字排序,然后我们在保证牛的价格小于等于当前草的价格的前提下,把牛要求的鲜嫩程度放在集合当中(集合是有序的),然后我们对于每一种草,我们只需要找到小于等于草的价格中牛需要的价格最大的,然后删除即可。注...原创 2018-07-19 03:07:42 · 257 阅读 · 0 评论 -
51Nod 字符串连接【贪心】
输入nnn个字符串s[i]s[i]s[i],你要把他们按某个顺序连接起来,使得字典序最小。 (1<=n<=1001<=n<=1001 <=100<=100 S1+S2S1+S2S_1+S_2与S2+S1S2+S1S_2+S_1的大小即可。参考代码:#include <cmath>#include <vector>...原创 2018-07-19 02:48:01 · 298 阅读 · 0 评论 -
51Nod 排队接水【贪心】
nnn个人一起排队接水,第iii个人需要b[i]b[i]b[i]的时间来接水。 1&lt;=n&lt;=10001&lt;=n&lt;=10001 0&lt;=b[i]&lt;=10000&lt;=b[i]&lt;=10000原创 2018-07-19 02:25:29 · 1542 阅读 · 0 评论 -
BZOJ P2697 特技飞行【贪心】
题目分析:这是一道超级水超级水的题,显然每个动作只需要做两次就可以了,因为一旦中间又做了一次会导致最后的结果不是最优的情况。所以我们只需要将所有动作的刺激程度拿来排序,按照从大到小放在两边即可。参考代码:#include &lt;cmath&gt;#include &lt;cstdio&gt;#include &lt;cstring&gt;#include &lt;iostr原创 2018-06-18 13:32:50 · 179 阅读 · 0 评论 -
BZOJ P1034 泡泡堂BNB【贪心】
题目分析:题意,不妨设浙江队的实力值为A[I],对手队的实力值为B[I],要求可能得到的最高分和最低分。对于可能得到的最高分,也就是我们要赢更多的局,在赢局局数相同的情况下,要让平局的局数越多。A[I]赢B[J]的条件是:A[I]&amp;gt;B[J],所以我们只需要将A[],B[]从小到大排个序,然后从头到尾依次比较即可。比如最先从A[1],B[1]开始比较,如果A[1]&amp;gt;B[1],那么此时...原创 2018-05-28 17:50:20 · 196 阅读 · 0 评论 -
BZOJ P1002 [FJOI2007] 轮状病毒【线性递推】【高精度模拟】
这道题虽然是线性递推…..但是我也就是多写了几个nnn轮状病毒的个数….然后找规律……设iii轮状病毒的个数为f[i]f[i]f[i],不难找到的规律: f[i]=f[i−1]∗3+2−f[i−2]f[i]=f[i−1]∗3+2−f[i−2]f[i]=f[i-1]*3+2-f[i-2] 然后高精度模拟一下就好了。参考代码:#include &lt;cstdio&gt;cons...原创 2018-07-23 01:56:32 · 250 阅读 · 0 评论 -
BZOJ P4813 [CQOI2017] 小Q的棋盘【贪心】
对于第一次走,我们肯定要走最长的一条链。然后返回的时候就可以看做每个点需要走两步才能到达。得解:#include <queue>#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>...原创 2018-09-12 00:06:24 · 184 阅读 · 0 评论