自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

繁凡さん的博客

人生亦繁亦不凡!深度学习初学者,退役ACMer,知乎「繁凡」 GitHub「fanfansann」

  • 博客(49)
  • 收藏
  • 关注

原创 IOI国家集训队1999-2020年论文集(附网盘免费下载链接)

国家集训队1999-2019年论文(合集)(文末有网盘下载链接)累死我了(;´д`)ゞ大家跟我每天一篇论文集, 一起自闭每一天文末有百度网盘免费链接哦国家集训队1999论文集陈宏:《数据结构的选择与算法效率——从IOI98试题PICTURE谈起》来煜坤:《把握本质,灵活运用——动态规划的深入探讨》齐鑫:《搜索方法中的剪枝优化》邵铮:《数学模型的建立、比较和应用》石润婷:《隐蔽化、...

2020-03-13 12:07:22 9524 31

原创 P3382 【模板】三分法,难度⭐⭐⭐

P3382 【模板】三分法法1 : 三分法对于一个二次函数[L,R]内取最值,选取两个点x=(2∗l+r)/3,y=(l+2∗r)/3若f(x)>f(y),那么[y,R]这一段可以舍弃(一定不会成为最优解),否则[l,x]这一段舍弃#include<iostream>#include<stdio.h>#include<string.h>#i...

2020-03-31 22:14:13 332

原创 【分治】P1228 地毯填补问题(多联骨牌覆盖棋盘问题)(递归,分治)难度⭐⭐⭐

P1228 地毯填补问题离散上讲了这个问题,如下图初看这个问题,似乎无从下手,于是我们可以先考虑最简单的情况,既n = 2时0 0 0 1 这时,无论公主在哪个格子,我们都可以用一块毯子填满继续考虑n = 4的情况我们已经知道了解决2 * 2的格子中有一个障碍的情况如何解决,因此我们可以尝试构造这种情况首先,显然可以将4 * 4的盘面划分成4个2 * 2的小盘面,其中一块已经存在一...

2020-03-30 22:57:26 467

原创 【学习笔记】树的计数,prufer(Prüfer)编码,Cayley公式及相应例题

目录1、pruferpruferprufer编码1)无根树转化为prufer序列2)prufer序列转化为无根树。2、Cayley公式1)由Cayley公式得到四个推论例题1、P4981 父子例二、P4430 小猴打架部分来自大佬的博客,加入一些自己的理解。1、pruferpruferprufer编码首先引入pruferpruferprufer编码(其实是Pru¨ferPrüferPru¨f...

2020-03-29 22:14:37 2169 1

原创 【每日DP】day12、P1063 能量项链(区间DP又一模板,震惊,只需要4行代码?)难度⭐⭐⭐

P1063 能量项链本题(NOIP2006)和石子合并(NOI1999)几乎一模一样 垃圾NOIP抄袭NOI,手动狗头但是还是有细微的区别的,首先你得先能看懂题,石子合并是N堆石子,是i−ki-ki−k和k+1−jk+1-jk+1−j之间的合并,但是本题能量项链,是i,j,k三个相邻的珠子起作用,得分是a[i]∗a[j]∗a[k]a[i]*a[j]*a[k]a[i]∗a[j]∗a[k]三个相邻...

2020-03-28 23:53:15 416 1

原创 区间DP 入门 详解

P1880 [NOI1995]石子合并要注意这是个环,是一个石子圈。怕日后我自己又看不懂了就放个链接,还是很好理解的时间复杂度O(8N3)O(8N^3)O(8N3)#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<...

2020-03-28 23:09:52 1688 1

原创 【每日DP】day 10、P1005 矩阵取数游戏【区间DP+高精(python)】难度⭐⭐⭐★

P1005 矩阵取数游戏输入2 31 2 33 4 2输出82说明/提示NOIP 2007 提高第三题。数据范围:60%60\%60% 的数据满足:1≤n,m≤301\le n,m\le 301≤n,m≤30,答案不超过 101610^{16}1016100%100\%100% 的数据满足:1≤n,m≤801\le n,m\le 801≤n,m≤80,0≤ai,j≤10...

2020-03-26 20:12:25 416

原创 P2949 [USACO09OPEN]Work Scheduling (后悔法,贪心)难度⭐⭐⭐

P2949 [USACO09OPEN]Work Scheduling G3 2 10 1 5 1 7 17 后悔法的贪心。首先思路就是先按截止日期排序,然后如果一个工作有时间去做,就先做了它,然后把它的价值压入一个小根堆。当我们找到一个没法做却价值比当前堆顶高的工作时,我们就放弃那个最小的工作(后悔了),用做它的时间去做这个价值更高的工作。#include<iostre...

2020-03-25 22:30:44 354

原创 P2280 [HNOI2003]激光炸弹(二维前缀和的简单应用)难度⭐⭐⭐

P2280 [HNOI2003]激光炸弹输出2 10 0 11 1 1输入1这道题就是最基础的二位前缀和的应用,如果不会的话可以点击下方链接学习哟前缀和差分详解#include<iostream>#include<stdio.h>//#include<string.h>#include<algorithm>//#inc...

2020-03-25 21:34:50 447

原创 【蓝桥杯】2019年第十届蓝桥杯省赛B组试题J — 灵能传输(前缀和,猜想结论)难度⭐⭐⭐⭐

蓝桥杯的题还是有难题的。这道题的可行性证明比较麻烦,但是代码比较简单。学到了新的序列操作。前缀和的应用,前缀和还是学的不够扎实,晚上再复习一遍。#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<queue>#d...

2020-03-25 20:00:44 815

原创 CF20C Dijkstra?( Dijkstra!练手)难度⭐⭐⭐

题意翻译题目大意给出一张图,请输出其中任意一条可行的从点111 到点nnn 的最短路径。输入输出格式输入格式第一行:两个整数n,m,分别表示点数和边数接下来m行:每行三个整数u,v,w,表示u和v之间连一条边权为w的双向边。输出格式一行:一个可行的路径,如果不存在这种路径输出-12<=n<=105,0<=m<=1052<=n<=10^5...

2020-03-24 23:19:38 346

原创 【构造】CF12E Start of the season(神奇的构造)难度⭐⭐⭐

CF12E Start of the season题目描述在伯兰的足球节开幕式中有一个奇怪的魔术秀。最有经验的魔术师会找一个n×nn×nn×n的矩阵(n为偶数)。足球节没有这个魔术秀绝对不会开始。这个矩阵应该包含0~n-1的正整数,且包含以下三条规则:1、主对角线上的数应该都是02、且整个矩阵应该都是对称的3、每行每列上的数都是不同的。魔术师很不喜欢一遍又一遍的接矩阵(魔术师真懒),于...

2020-03-24 22:00:55 316

原创 CF5A Chat Server's Outgoing Traffic(字符串模拟,find函数的应用)难度⭐

题意翻译Polycarp正在开发一个名为“Polychat”的新项目。按照IT的现代倾向,他决定,这个项目也应该包含聊天。为了实现这一目标,Polycarp在笔记本电脑前花费了几个小时,实现了一个可以处理三种命令的聊天服务器:将一个人加入聊天(“添加”命令)。从聊天中删除一个人(“删除”命令)。向所有正在聊天的人发送消息,包括发送消息的人(“发送”命令)。现在,Polycarp希望了解处...

2020-03-24 21:23:54 240

原创 【每日DP】day 9、P1156 垃圾陷阱(神奇的背包,时间节点处理)难度⭐⭐⭐

P1156 垃圾陷阱每个垃圾只能用一次,典型的01背包。关键是时间的处理ll f[N];题目要中求的是生存的最长时间,所以这里的f[i]是指高度i时生存的最长时间对于每一块垃圾,我们都有两种选择,吃,或者不吃。这里时间的处理类似迷宫DP,对于i,求所有能到达这一高度的时间中取最大值,不用记录时间段,每次加上高度试探一下,如果可以直接逃出去就输出这一块垃圾到来的时间即可。因为数据中没说是否...

2020-03-23 23:09:44 202

原创 【每日DP】day 8、P2014 [CTSC1997]选课(树形DP(树形背包)模板)难度⭐⭐⭐

P2014 [CTSC1997]选课题意为选一门课前要看它是否有前提条件:即选了一门主课才能选 “副科”,所以可以用分组背包或者树形背包来做。链式前向星建树。本身这道题的数据是一组森林,但是森林很难一起dfs所以就把所有的树根都以0为根节点建一颗大树,直接链式前向星前序遍历即可。转移方程 f[p][j]f[p][j]f[p][j]是指f[以p为根节点][当前学分剩余]f[以p为根节点][...

2020-03-22 22:38:20 349

原创 【每日DP】day7P1064 金明的预算方案 (分组背包,我又悟了)难度⭐⭐★

P1064 金明的预算方案背包其实就是把一个大问题拆分成若干个子问题,把一个要拿东西的动作按照题目要求分成若干个动作,分别枚举(DP其实就是非常的暴力),比较取最大值。比如这道题,背包的物品之间是有依赖的,所以分情况讨论,考虑只放主件放主件和附件一(如果有的话)放主件和附件二放主件和两个附件然后物品都只有一个,所以就是最普通的01背包。其中f[i]f[i]f[i]表示的是在...

2020-03-22 18:34:02 314

原创 POJ 3111 K Best (最大化平均值,贪心 二分)难度⭐⭐⭐

题目来源:【题意】有n个物品的重量和价值分别是wi,vi,从中选取k个物品使得单位重量的价值最大。输出格式:输出一行物品的编号。#include<iostream>#include<stdio.h>#include<algorithm>#define ls (p<<1)#define rs (p<<1|1)#defi...

2020-03-20 21:57:31 339

原创 CF3B Lorry (手动模拟01背包,贪心)难度⭐⭐⭐

这道题洛谷上的翻译是错的,最后输出格式那里应该是输出一行所选物品的编号,中间用空格隔开手动模拟01背包这道题看上去很像是01背包的模板题,但是很明显,v=1e9,正常的01背包是肯定会爆掉62MB的内存的,所以不可能用普通的01背包来做,但是转念一想,这道题是由10背包魔改过来的,增加的难度是空间的问题。那么如果可以解决掉空间上的不足,用01背包的思路来做即可先把物品1或2 分成两组,按...

2020-03-20 20:52:08 288

原创 【每日DP】day6 P1541 乌龟棋(四维DP)难度⭐⭐⭐

P1541 乌龟棋四维DP——四种状态,所以四维DPf[i][j][k][l]f[i][j][k][l]f[i][j][k][l]:表示牌号分别为1,2,3,4,的时候用了i,j,k,l张牌思路详解#include<bits/stdc++.h>#define ls (p<<1)#define rs (p<<1|1)#define mid ((l...

2020-03-19 23:04:34 188

原创 P1083 借教室(标记永久化线段树/二分+前缀和)难度⭐⭐⭐★

P1083 借教室标记永久化线段树很典型的区间修改问题,先输入赋值建树(这就是最典型的线段树呀,别忘了),然后修改这里问的是是否有足够的空教室,所以线段树中 min 代表的是当前区间内最小的剩余教室量。一般的线段树使用lazytag标记,每次都需要往下修改到根节点,本题中1e6有可能被卡常超时,所以使用标记永久化的线段树,即不用lazytag,改用used表示当前区间所使用的教室数,更新...

2020-03-19 22:31:11 254

原创 【每日DP】day 5、P1095 守望者的逃离(好像悟到了DP的真谛)难度⭐⭐★

P1095 守望者的逃离输入39 200 4输出No197输入36 255 10输出Yes6好像悟到了DP的真谛(doge)动态规划,就是动态地维护当前的状态。本题种状态是距离,用 dp[i]dp[i]dp[i] 存第 iii 秒所走的最大距离.本题种影响状态的因素有三(有三种操作)放魔法,休息和走路。放魔法和休息是一体的。所以先考虑边放魔法闪现边休息的...

2020-03-18 22:56:35 217

原创 P1276 校门外的树(增强版)(线段树)(校门三部曲)难度⭐⭐⭐

校门三部曲,总算完结了!完结散花!第一部P1047 校门外的树(线段树优化)难度⭐⭐第二部P1276 校门外的树(增强版)第三部P5568 [SDOI2008]校门外的区间(离散数学应用+线段树+开闭区间处理)难度⭐⭐⭐⭐★因为本题只需要最后询问一次即可,所以不需要一直更新答案建两棵线段树(两颗最好用结构体建树比较方便)种树只在第一棵树种,第一棵树是树和苗的总和,第二颗树只有树...

2020-03-18 20:25:30 601 1

原创 实现选择开区间或闭区间的操作,输出开区间或闭区间 详解(线段树运用)

该操作源于此题目P5568 [SDOI2008]校门外的区间(离散数学应用+线段树+开闭区间处理)难度⭐⭐⭐⭐★题目中输入的区间有开区间也有闭区间,输出的答案也是有开区间或闭区间,所以这里就需要特殊的开闭区间操作来处理。详细规则及解释:代码实现输出U [1,5]D [3,3]S [2,4]C (1,5)I (2,3]输入(2,3)注意这里的输入细节int main...

2020-03-18 11:57:00 1001

原创 P5568 [SDOI2008]校门外的区间(离散数学应用+线段树+开闭区间处理)(校门三部曲)难度⭐⭐⭐⭐

P5568 [SDOI2008]校门外的区间U [1,5]D [3,3]S [2,4]C (1,5)I (2,3](2,3)0≤a,b≤65535,M≤700000 \leq a,b \leq 65535, M \leq 700000≤a,b≤65535,M≤70000转化成线段树的区间覆盖+翻转问题用线段树维护当前区间并且维护两个标记cov,tagcov,tag,分别代...

2020-03-17 23:28:48 597

原创 【每日DP】day4 P1417 烹调方案(奇怪的01背包增加了)难度⭐⭐⭐

P1417 烹调方案每件物品只有一个,很明显是01背包,但是价值的转换方式不同,是要求 ai−t∗bia_i-t*b_iai​−t∗bi​ 尽可能最大。普通的01背包的价值是不变的,而这一道题目中的价值是随着所选物品的顺序有所改变,所以应该按照题意排序,并用 maxn去找最大的答案,因为答案不一定是f[t]f[t]f[t]。还有就是常开longlonglong longlonglong 是...

2020-03-17 00:06:48 226

原创 【每日DP】day3 P1387 最大正方形(奇怪的DP增加了 / 二维前缀和)难度⭐⭐★

奇怪的DP增加了这道题,刚看见真是一脸懵逼,看了题解才明白。本题中神奇的转移方程是:f[i][j]=min(min(f[i][j−1],f[i−1][j]),f[i−1][j−1])+1f[i][j]=min(min(f[i][j-1],f[i-1][j]),f[i-1][j-1])+1f[i][j]=min(min(f[i][j−1],f[i−1][j]),f[i−1][j−1])+1...

2020-03-16 21:28:02 271

原创 【每日DP】day2、P1879 [USACO06NOV]Corn Fields G玉米地(状压DP模板题)难度⭐⭐⭐★

昨天的每日DP我还在写01背包,今天就到状压DP了,真刺激。P1879 [USACO06NOV]Corn Fields G题目链接输入2 31 1 10 1 0输出9一道简单的状压DP入门题。先看大佬讲解样例这是链接我截下来放到下面了本题我的代码的思路1、先预处理第i行的草地状态init[i]init[i]init[i],压缩为一个整数。2、再预处理第i行不相邻...

2020-03-15 21:47:58 1364 3

原创 【状压DP】状态压缩动态规划入门超详解

状压DP一、概述1.状态压缩2.使用条件3.状压DP二、位运算三、例题引入入门例题【例1】填满棋盘入门例题【例二】玉米地感觉好多讲状压DP的博客都有点乱,我就结合各路大佬的博客,加上我自己的理解,总结出一篇博客来,供初学者参考一、概述1.状态压缩状态压缩就是使用某种方法,简明扼要地以最小代价来表示某种状态,通常是用一串01数字(二进制数)来表示各个点的状态。这就要求使用状态压缩的对象的点的...

2020-03-15 13:19:10 9892 9

原创 SP11469 SUBSET - Balanced Cow Subsets(折半搜索+状态压缩)难度⭐⭐⭐⭐★

题目链接SP11469 SUBSET - Balanced Cow Subsets题目翻译给出N(1≤N≤20)N(1≤N≤20)N(1≤N≤20)个数M(i)(1<=M(i)<=100,000,000)M(i) (1 <= M(i) <= 100,000,000)M(i)(1<=M(i)<=100,000,000),在其中选若干个数,如果这几个数可以分成...

2020-03-14 22:36:29 369

原创 【每日DP】day1 P1802 5倍经验日(别样的01背包)难度⭐★

P1802 5倍经验日一道有点意思的01背包,可以帮助理解。好久没写DP了,每天一道DP,从基础学起,正好复习一下。这道题不同之处在于失败了(不拿走这件东西)也会有收益,所以就在正常的倒序一维01背包的基础之上,如果背包容量小于当前的物品的重量,也要加上lose[i]lose[i]lose[i],以及别忘了题中的五倍经验。#include<bits/stdc++.h>usin...

2020-03-14 19:50:05 267 2

转载 ACM小白入门之必须要了解的东西

ACM 国际大学生程序设计竞赛历史与介绍程序设计竞赛是指考察程序设计能力的竞赛,分为解题竞赛、创意竞赛、性能竞赛等。程序设计竞赛的主要代表是 ACM-ICPC(ACM 国际大学生程序设计竞赛),ACM 程序设计大赛是大学级别最高的脑力竞赛,素来被冠以"程序设计的奥林匹克"的尊称。这项竞赛的历史可以上溯到 1970 年,当时在美国德克萨斯 A&M 大学举办了首届比赛。作为一种全新的发现和...

2020-03-12 21:07:21 1463

原创 P2240 【深基12.例1】部分背包问题(贪心)难度⭐

题目链接很经典的一道贪心题,今天在洛谷上刷到了,就再做一遍竟然是道黄题,赶紧水一下没想到竟然WA了一次,确实提醒了我一下,写题的时候别手贱思路就是一个简单的贪心,按照性价比来排序,因为金币是可以分开的所以拿不完就拿一部分还有就是其实有除的话尽量推公式换成乘法,除容易有误差但这道题数据太水了 数据的类型转换还是要注意的以及double的数比较大小的时候别忘了有误差,浮点数相等应该是这种...

2020-03-12 20:15:37 605

原创 P1892 [BOI2003]团伙(并查集,反集)难度⭐⭐★

https://www.luogu.com.cn/problem/P1892反集如果a和b是敌人,合并n+b和a,n+a和b如果c和a是敌人,合并n+c和a,n+a和c那么b和c自然就合并在一起了这样就符合了题目敌人的敌人是朋友的规则注意并查集不要忘了初始化注意输入的时候scanf要用%s 因为scanf遇见空格是不会跳的,所以尽量这种时候就不要用scanf,比较麻烦,cin它...

2020-03-12 19:18:31 470

原创 P1525 关押罪犯(扩展域并查集/二分图)

洛谷题目链接输入4 61 4 25342 3 35121 2 283511 3 66182 4 18053 4 12884输出35121.并查集有意思的一道并查集的题,需要一些思维。用并查集来维护,当a和b并到一起的时候说明他们两个在同一个监狱之中。本题要求最大的仇恨值最小,所以用结构体存数据,先排序,仇恨值最大的排在前面,遍历这个结构体数组,遵循把敌人的敌人和...

2020-03-12 17:39:39 379

原创 P1047 校门外的树(线段树优化)(校门三部曲)难度⭐⭐

题目链接线段树优化O(logN+N)O(logN+N)O(logN+N),本题数据太小差别不大需要注意的是本题中L是总长度,带到代码里是从1开始的n个点,所以建树的时候应该范围应该是1~n+1,所以修改区间的时候。#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll N=1e5+7...

2020-03-11 22:40:59 424 3

原创 P3366 【模板】最小生成树(链式前向星,prim,有坑)难度⭐⭐

题目链接输入:4 51 2 21 3 21 4 32 3 43 4 3输出:7链式前向星相比于矩阵,遍历的代码更加复杂一点,但是省空间,这道题用矩阵存就MLE,只能用链式前向星存。又是 iii 又是 jjj 的给我整晕了,小黄鸭大法好#include<string.h>#include<iostream>#include<cstdio...

2020-03-11 21:02:46 342

原创 P3743 kotori的设备(二分答案,思维,线性)难度⭐⭐⭐

题目链接题目背景kotori 有 n 个可同时使用的设备。题目描述第 i 个设备每秒消耗ai个单位能量。能量的使用是连续的,也就是说能量不是某时刻突然消耗的,而是匀速消耗。也就是说,对于任意实数 ,在 k 秒内消耗的能量均为k*ai 单位。在开始的时候第 i 个设备里存储着bi个单位能量。同时 kotori 又有一个可以给任意一个设备充电的充电宝,每秒可以给接通的设备充能p 个单位,充能...

2020-03-11 19:39:49 502

原创 P1102 A-B 数对(二分,映射)难度⭐

题目描述给出一串数以及一个数字C,要求计算出所有 A−B=CA−B=CA−B=C 的数对的个数(不同位置的数字一样的数对算不同的数对)。输入格式输入共两行。第一行,两个整数 N,C。第二行,N 个整数,作为要求处理的那串数。输出格式一行,表示该串数中包含的满足 A−B=CA−B=CA−B=C 的数对的个数。4 11 1 2 33很简单的一道题,要注意的是映射的思想利用...

2020-03-10 16:23:16 482

原创 【树形DP】树的重心详解+多组例题详解

目录定义:性质:算法分析:POJ 1655 Balancing Act(求重心)POJ 3107 GodfatherP1364 医院设置(树形DP)定义:树的重心也叫树的质心。对于一棵树n个节点的无根树,找到一个点,使得把树变成以该点为根的有根树时,最大子树的结点数最小。树的重心定义为树的某个节点,当去掉该节点后,树的各个连通分量中,节点数最多的连通分量其节点数达到最小值。树可能存在多个重...

2020-03-09 21:57:19 2652

原创 牛客 Tree(最小深度总和)(两种方法求重心)难度⭐⭐⭐

链接牛妹有一张连通图,由n个点和n-1条边构成,也就是说这是一棵树,牛妹可以任意选择一个点为根,根的深度deprootdep_{root}deproot​​为0,对于任意一个非根的点,我们将他到根节点路径上的第一个点称作他的父节点,例如1为根,1−41-41−4的;路径为1−3−5−41-3-5-41−3−5−4时,4的父节点是5,并且满足对任意非根节点,depi=depfai+1dep_i=d...

2020-03-09 11:52:49 447

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除