技巧
文章平均质量分 77
ygmjsjdboy
这个作者很懒,什么都没留下…
展开
-
【状压DP】【矩阵加速】 [TJOI2015]棋盘
门题目给你n×mn\times mn×m的方格,在里面放棋子,并给出3×p3\times p3×p矩阵作为棋子攻击范围求方案数题解首先!吐槽出题人!为什么没有说起始是第000行第000列!,所以棋子在攻击范围的第二行,直接0分,调了几个小时一眼看数据范围,肯定是状压没跑了冷静分析一波,状态数64,对当前状态有影响的只有上一行,所以f[n][s0][s1]f[n][s0][s1]f[n][s0][s1]三维数组,用回滚数组滚掉第一维技巧通过观察发现我们的n次转移过程完全一样,于是我们可以将原创 2020-06-12 19:47:30 · 106 阅读 · 0 评论 -
【点分树】[ZJOI2007]捉迷藏
门点分树不卡常就别想过了。。。题目问树中最远黑点对距离带修改题解点分树入门作原图先乱跑一次点分治,保存点分治的每个root之间的父子关系,得到一颗点分树。然后我们的原图除了求dis就可以不管了学习题解中不认识的大佬所说的套路:点分治得到点分树每个点用S1,S2S_1,S_2S1,S2两个数据结构维护,依次容斥修改和查询都是树高(logn)×\times×数据结构修改查询复杂度初始化可以视为n次修改此题用堆维护①第一种堆:维护当前节点的每个点分树子树中的maxdis②第二原创 2020-06-09 21:57:24 · 135 阅读 · 0 评论 -
【轮廓线dp】一双木棋
题目棋盘格中,两人轮流下棋。下的棋必须左面,上面都已经下过棋。每个棋盘格有两个值,分别代表两人下了该点能得到的分数。每个人都想要(己方分数-对方分数)MAX现每个人都采取最优策略,也知道对方要采取最优策略。问先手的(先手分数-对方分数)MAX题解容易知道是DP,状压dps=max(−dpt+vali,j) dp_s=max(-dp_t+val_{i,j})dps=max(−dpt+vali,j)但最困难的是如何压缩状态我首先用的是N位的M进制,每一位表示这一列还剩有多少个格子没下原创 2020-05-16 14:07:55 · 218 阅读 · 0 评论 -
【要脑子的题】树的重量
洛谷 P1268题目求满足条件的树的总边长即重量题解首先我们需要想到一个问题,有且仅有一个合法构造方法然后我们可以推一个有趣的东西:原本的满足关系的三点关系(上图)可以简化为满足树形态的简图(下图)总长增加了k接着额发现每个新点可以通过找在已知边中最小的k,好像就是这样两层循环就完了,果然是道蓝(难)题#include<bits/stdc++.h>using ...原创 2019-12-13 16:48:09 · 110 阅读 · 0 评论 -
【二分】【前缀和】聪明的质检员
Luogu P1314题目:算了,自己看题解:显然对于选取的w,对应的Y有单调性(递减)绝对值,尽量靠近S二分求Y值用前缀和#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=2e5+10,M=2e5+10;int n,m;int w[N],v[N];ll S,s...原创 2019-11-04 15:26:21 · 109 阅读 · 0 评论 -
【双向链表】【倍增】开车旅行
Luogu P1081题目:A,B轮流走(A先)A走前方次近的点,B走前方最近的点距离为:∣ai−aj∣|a_i-a_j|∣ai−aj∣1.从哪个点出发,总距离<x,A与B的行走距离比值最小2.从s出发,总距离<x,A,B分别的行走距离题解:暴力一般直接找每个起点对应A,B会到达的点预处理:排序后,链表,找其前面后面两个范围内的点。(本题重点)可以发现不论前面怎...原创 2019-11-02 23:16:06 · 111 阅读 · 0 评论 -
【读优取模】解方程
Luogu P2312题目:求a0+a1x+a2x2+...+anxn=0a_0+a_1x+a_2x^2+...+a_nx^n=0a0+a1x+a2x2+...+anxn=0在[1,m][1,m][1,m]中的整数解数据范围:n≤100,∣ai∣≤1010000,m<106n\leq 100,|a_i|\leq 10^{10000},m<10^6n≤100,∣ai∣≤...原创 2019-10-31 14:40:12 · 336 阅读 · 0 评论 -
【离散】火柴排队
Luogu P1966题目:给出两个数列a,b求最少相邻交换(一个数列内)次数,使∑(ai−bi)2\sum (a_i-b_i)^2∑(ai−bi)2最小题解:先数学分析一下:∑(ai2+bi2−2aibi)\sum(a_i^2+b_i^2-2a_ib_i)∑(ai2+bi2−2aibi)∑ai2+∑bi2\sum a_i^2+\sum b_i^2∑ai2+∑bi2都...原创 2019-10-28 22:12:40 · 94 阅读 · 0 评论 -
【树上差分】【例题】Network
POJ3417题目:已知一棵有n个点的树,现加m条边,问:有多少种方案,选一条原树边,一条新加边,使两边删去后图不连通题解:乍一看,好像和割点和桥有点像,然而找到桥后就不知道怎么办了。x->y的新加边:x->lca(x,y),y->lca(x,y)中经过边加一覆盖数其实统计被新加边覆盖的边和覆盖次数就行了未被覆盖: 可以与任意新加边组合成合法方案(ans+=m)(...原创 2019-10-20 22:20:54 · 225 阅读 · 0 评论 -
【矩阵加速】Fibonacci
POJ 3070题目:略题解:推矩阵公式,加速。。。#include<stdio.h>#include<iostream>#include<cmath>#include<string.h>using namespace std;const int N=3,mod=10000;int n=2;struct Mt{ int a[N]...原创 2019-10-10 20:57:28 · 100 阅读 · 0 评论