ICode9

精准搜索请尝试: 精确搜索
  • [做题记录-乱做]Luogu 3780 [SDOI2017]苹果树2021-09-22 21:04:35

    首先一个很聚的转化是把\(t - h \leq k\)转化为先在一条链上不带代价地选择一个, 然后有代价地进行一堆树的dp。 根据贪心的性质, 这个链肯定到底。然后你再去搞出度的dfs序, 也就是出来的时候记录一个点。那么树dp可以转化到这个序列上的一个dp。 具体来说, 转移是\(dp_{i, j} = \max

  • Luogu 3722 影魔(树状数组区间查询区间修改)(好!!)2021-09-21 14:01:11

    P3722 [AH2017/HNOI2017]影魔 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 该如何·思考这一题,一开始发现是蒙蔽的(毫无思路)‘ 首先将题意改成人话:如果l~r中l,r是最大值和次大值,那么会有p1的价值 如果l~r中有一个是最大值,那么有p2的贡献 其实这个题有一个很重要的条件就是k为1-

  • Luogu 3302 森林(树上维护主席树)2021-09-20 23:05:40

    P3302 [SDOI2013]森林 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)P3302 [SDOI2013]森林 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 大概就是要在树上搞第k小吗,还要支持合并 讲实话第一反应树剖+线段树维护,然后就傻掉了 讲正解:每一个节点开一颗主席树维护从该节点到根节点

  • Luogu 3168 (主席树区间修改)2021-09-20 23:03:19

    P3168 [CQOI2015]任务查询系统 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 平常都是单点修改,区间修改就是差分呗,然后前缀和,我们要知道主席树本身就是有前缀和的性质。 //code by SPzos /* 4 3 1 2 6 2 3 3 1 3 2 3 3 4 3 1 3 2 1 1 3 4 2 2 4 3 */ #include<bits/stdc++.h> #

  • luogu P4221 [WC2018]州区划分2021-09-18 22:36:07

    题面传送门 判欧拉回路写错调了一个多小时 首先可以\(O(2^nm)\)处理出哪些是可以选的就有了\(O(n3^n)\)的爆枚子集的做法。 不难想到子集卷积,但是子集卷积是卷两个没有关系的数组,但是这个是自己卷自己。 容易发现一个数枚举子集的过程是不可能从二进制和它个数相同的数拿答案的,这

  • Luogu-P3384 【模板】轻重链剖分/树链剖分2021-09-14 11:03:47

    学习 是看这篇博文学习的。 https://www.cnblogs.com/chinhhh/p/7965433.html 代码 #include <bits/stdc++.h> using namespace std; #define MAXN 100005 long long Ha; int n,m,root; vector<int> graph[MAXN]; int siz[MAXN]; int son[MAXN]; int fa[MAXN]; int dep[M

  • luogu P4859 已经没有什么好害怕的了2021-09-13 21:03:01

    题面传送门 首先是二项式反演公式:\(f_n=\sum\limits_{i=n}^{m}{C_{n}^{i}g_i}\)可以得到\(g_n=\sum\limits_{i=n}^{m}{(-1)^{i-n}C_{n}^{i}f_i}\) 这个直接把\(g\)代到\(f\)里面就化一下就出来了。 然后这道题直接求很难求,考虑求出至少\(k\)的答案记为\(dp_k\) 这个可以排好序以

  • 题解 Luogu P1081 开车旅行2021-09-11 21:33:46

    题意 给定 \(n\) 座城市,第 \(i\) 座城市有一个海拔高度 \(h_i\),且 \(h_i\) 两两不同。定义城市 \(i,j\) 的距离 \(dis(i,j)=|h_i-h_j|\),即城市 \(i,j\) 海拔之差的绝对值。 小 A 和小 B 将从开车城市 \(s\) 出发,并且最多行驶 \(x\) 公里就结束旅行。他们会轮流驾驶,并且小 A 驾驶第

  • 【luogu P4899】werewolf 狼人(最小生成树)(主席树)2021-09-11 13:33:02

    werewolf 狼人 题目链接:luogu P4899 题目大意 给你一个无向图,然后每次要从一个地方走到另外一个地方。 然后你在走的过程中要在一个点转换形态,转换之前你只能走大于等于 L 的点,转换之后你只能走小于等于 R 的点。 然后问你对于每次询问,要你回答能不能走。 思路 首先我们考虑

  • luogu P5939 [POI1998]折线2021-09-10 20:00:54

    题面传送门 首先这个\([45,-45]\)看上去就很不爽,于是顺时针旋转45一下然后变成\([0,90]\) 然后就发现一个点只能被它左上角的点的折线拉到。 那么就是求覆盖所有点的不升字符列最少个数,经典转化一下就是最长上升子序列长度。 直接树状数组就好了。 code: #include<bits/stdc++.h>

  • luogu P39112021-09-10 15:33:26

    题目 修复了一些小bug,(。・_・。)ノI’m sorry~ 给出集合 \(A\),设 \(n=\mid A\mid\),求 \(\sum_{i=1}^n\sum_{j=1}^n\text{lcm}(A_i,A_j)\)。 摸到这道题,我们马上就可以发现 \(A\) 中的元素是无序的,题目中给出的式子没法化简,所以我们不得不考虑转化式子。 数据范围 \(1\le A_i\le5e4\)

  • luogu P42402021-09-10 15:32:01

    题目 看题解才会的(指把题解瞅了个遍),没脸发题解 简单性质 \[\large \begin{aligned} &\varphi(ij)=ij\prod_{p\mid ij}\frac{p-1}{p}\\ &\varphi(\text{gcd}(i,j))=\text{gcd}(i,j)\prod_{p\mid i,p\mid j}\frac{p-1}{p}\\ &\varphi(ij)\times\varphi(\text{gcd}

  • [Luogu]P5387 [Cnoi2019]人形演舞(FWT,SG函数)2021-09-05 18:00:05

    刚好FWT和SG函数都刚学,这道题也挺模板的,就拉来做做。 手动打个SG函数表发现\(sg[2^k+n]=n+1\),然后博弈论就被干掉了,剩下的问题变成,有\(m\)个数可以选,选择\(v\)个数使得异或和为\(0\)。 这道题题意有锅吧,正确表述应该是大小为\(V\)的序列,而不是集合,因为方案数跟选取顺序有关。 令\(

  • luogu 4726 【模板】多项式指数函数(多项式 exp)2021-08-30 20:34:10

    题面传送门 首先是牛顿迭代。 举个例子,你要求\(x^2-a=0\)并且你不会解一元二次方程。 然后你先找到一个\(x_0\)算出\(x=x_0\)的当前值。 然后求当前点\(x_0\)的切线,大概是\(y=f'(x_0)(x-x_0)+f(x_0)\) 带入\(y=0\)就可以解得\(x=x_0+\frac{f(x_0)}{f'(x_0)}\) 然后这样迭代下午精

  • Luogu P4767「IOI2000」邮局2021-08-24 20:35:13

    P4767「IOI2000」邮局 显然 DP ,考虑设 \(f_{i,j}\) 表示前 \(j\) 个村庄放了 \(i\) 个邮局的最小距离,为了方便 DP ,我们钦定这个区间里的村庄都匹配这些邮局。 那么转移式写出来就是 : \[f_{i,j} = \min_{k=1}^{j-1} \left\{ f_{i,k-1} + w(k+1,j) \right\} \]其中, \(w(l,r)\) 表示

  • luogu P5222 Game2021-08-24 15:03:07

    题面传送门 指导居然卡空间差评!!!! 首先肯定可以暴力建图然后跑费用流,每次增加一个流量,这样可以\(O(n^2m)\) 然后发现如果一行是一个连续没有障碍段那么肯定走到最后再换行一定不会更劣。 所以可以这样缩点,并把每个点拆成出点和入点限流,然后对于每个障碍点连出\(m\)条边即可。 时间复

  • 【luogu P7796】图书管理员 / POLICE(并查集)(树状数组)2021-08-24 09:34:33

    图书管理员 / POLICE 题目链接:luogu P7796 题目大意 给你 n 个书架,每个书架有 m 个位置,然后有一些书在上面。 给出图书的初始放置状态和期望放置状态。 然后你有两个操作: 如果一本书左边或右边是空的,那你可以把这本书移到左边或右边。 从书架上拿走一本书,放在一个空位上。 然后问

  • 【luogu P4762】字符串合成 / Virus synthesis(PAM)(DP)2021-08-24 09:34:18

    字符串合成 / Virus synthesis 题目链接:luogu P4762 题目大意 初始有一个空串,要你用最小花费构造给出的一个字符串。 你可以花费一个费用: 在字符串前或字符串后加一个字符,或者将这个字符串反转后得到的字符串接在这个字符串的前面或者后面。 思路 首先不难想到它反转再接其实就是

  • 【luogu P7529】Permutation G(几何)(数学)(DP)2021-08-24 09:31:57

    Permutation G 题目链接:luogu P7529 题目大意 给你二维平面上的一些点,问你有多少个排列,满足除了前三个点,其他点加入时与之前的点连边恰好有 3 条不会与其它线段相交,并连这三条边。 不会存在三点共线。 思路 首先你分析一下其实会发现你就要一直维护你选的点搞出来的图形在最外围是

  • Luogu P5395 第二类斯特林数·行2021-08-22 14:03:42

    \(\texttt{Description}\) 第二类斯特林数 \(\begin{Bmatrix} n \\m \end{Bmatrix}\) 表示把 \(n\) 个不同元素划分成 \(m\) 个相同的集合中(不能有空集)的方案数。 给定 \(n\),对于所有的整数 \(i\in[0,n]\),你要求出 \(\begin{Bmatrix} n \\i \end{Bmatrix}\)。 \(1\le n\le 2\times

  • Luogu 11062021-08-21 22:00:43

       大概思路就是从左到右遇到的“”山峰删掉,比如c[i]>c[i+1]那么将c[i]删了,然后再从头删起。这个题数据比较小,所以直接暴力。 它的升级版U83355,需要维护一个链表(数据太大),但我没有打代码,就是懒得打,不想调细节。 贴个暴力: #include<bits/stdc++.h> char c[260]; int main(){

  • Luogu 29112021-08-21 19:32:59

    事先声明,确保您有一定的钻研精神再继续阅读。      数据这么小,直接搞个桶不就完事,没错,但是如果数据很大呢?这个题虽然是个红题,但我认为有很大的钻研价值,可以在O(1)时间内解出答案。 以上内容出自本题对应的第一篇题解,不得不佩服这位大佬在红题上费了如此心思,我觉得以此类推3,4

  • Luogu 32282021-08-21 19:00:25

       直接确定第一天后面还是不太好维护,所以考虑维护差分数列。然后就是个组合数学。 #include<bits/stdc++.h> #define ll long long using namespace std; ll n,m,p,ans,k; ll ksm(ll a,ll b,ll mod) { ll res=1; while(b) { if(b&1) {

  • luogu P1637 三元上升子序列2021-08-20 20:33:55

    我们可以枚举中间数,然后一分为二计算前面比本元素小的*后面比本元素大的,累加起来就是答案。 首先需要离散化,预处理两个数组l[i],r[i]表示左边比i小和左边比i大的。 开个权值树状数组,l[i]很好计算 ,r[i]需要变化一下,倒序计算r[i],那么当前计算出的sum表示的i+1n中小于等于a[i]的,用n-

  • luogu 2024 食物链2021-08-20 16:01:56

    题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B 吃 C,C 吃 A。 现有 \(N\)个动物,以 \(1 - N\)编号。每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这 \(N\) 个动物所构成的食物链关系进行描述: 第一种说法是 1 X

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有