11 2017 档案
摘要:题目大意: 解题关键:指派问题,待更。
阅读全文
摘要:题目大意:给你$n$个模块,每个模块在A核花费为$a_{i}$,在B核跑花费为$b_{i}$,然后由$m$个任务$(a_{i},b_{i},w_{i})$,表示如果$a_{i},b_{i}$不在同一个核上跑,额外的花费为$w_{i}$,求最小的花费。 解题关键:此题的关键为建模,一个超级源点指向所有
阅读全文
摘要:题目大意:$N*N$的网格中有$n$颗行星,若每次可以消去一整行或一整列,求最小的攻击次数使得消去所有行星。 解题关键:将光束当做顶点,行星当做连接光束的边建图,题目转化为求该图的最小顶点覆盖,图的最小顶点覆盖是$NP$问题,又因为该图是二分图(水平方向的点和竖直方向的点),而二分图的最大匹配=最小
阅读全文
摘要:题意:有向图判负环。 解题关键:spfa算法+hash判负圈。 spfa判断负环:若一个点入队次数大于节点数,则存在负环。 两点间如果有最短路,那么每个结点最多经过一次,这条路不超过$n-1$条边。” 如果一个结点经过了两次,那么我们走了一个圈。如果这个圈的权为正,显然不划算;如果是负圈,那么最短路
阅读全文
摘要:解题关键:最小费用流 代码一:bellma-ford $O(FVE)$ bellman-ford求最短路,并在最短路上增广,速度较慢 代码二:dijkstra,$O(FElogV)$ 这里是通过一个定理 s到v的最短距离<=s到u的最短距离+dis(e) s到u的最短距离+dis(e)-s到v的最短
阅读全文
摘要:题目大意:有$n$头牛,$f$种食物和$d$种饮料,每种食物或饮料只能供一头牛享用,且每头牛只享用一种食物和一种饮料。每头牛都有自己喜欢的食物种类列表和饮料种类列表,问最多能使几头牛同时享用到自己喜欢的食物和饮料。 解题关键:设超级源点指向所有食物,饮料指向所有超级汇点,牛拆点为牛1和牛2,然后按照
阅读全文
摘要:题目大意:一个网络,一共$n$个节点,$m$条边,$np$个发电站,$nc$个用户,$n-np-nc$个调度器,每条边有一个容量,每个发电站有一个最大负载,每一个用户也有一个最大接受量。问最多能供给多少电力。 解题关键:此题可转化为单元单汇最大流问题,设立一个超级源点和超级汇点,将超级源点指向所有源
阅读全文
摘要:解题关键:最大流裸题
阅读全文
摘要:解题关键:使用的挑战程序设计竞赛上的模板,第一道网络流题目,效率比较低,且用不习惯的vector来建图。 看到网上其他人说此题有重边,需要注意下,此问题只在邻接矩阵建图时会出问题,邻接表不会存在的,也体现了邻接表的优越性? edge结构体的第三个变量为from的下标。 模板一: 模板二:dinic,
阅读全文
摘要:题意:输出题中带有$n$个标号的图中连通图的个数。 解题关键: 令$f(n)$为连通图的个数,$g(n)$为非联通图的个数,$h(n)$为总的个数。 则$f(n) + g(n) = h(n)$ 考虑标号1所在的联通分量中连通图的个数。 转移方程:$g(n) = \sum\limits_{k = 1}
阅读全文
摘要:解题关键:快速数论变换NTT模板。 注意$ans$数组的$ans[n]$一定要注意置$0$,或者结果从$n-1$开始遍历,这里很容易出错。 代码1:ACdreamer 的板子。 为什么要reverse序列至今没证明出来。=,=有懂的聚聚可以告诉本渣一下,万分感谢!!~~ 经过聚聚们的指导,还是不太懂
阅读全文
摘要:解题关键:快速傅里叶变换fft练习。 关于结果多项式长度的确定,首先将短多项式扩展为长多项式,然后扩展为两倍。 memset改一下。 最后试了下,len1+len2就可以。
阅读全文
摘要:题意:A*B 解题关键:FFT模板题,将多项式乘法看成多项式相乘,ans多项式的每一项就是卷积的结果。今天正式开始入坑多项式。
阅读全文
摘要:题意:求${2^{{2^{{2^{...}}}}}}\bmod p$ 解题关键: 因为${a^n} \equiv {a^{n\bmod \varphi (p) + \varphi (p)}}\bmod p,n > \varphi (p)$ 所以, $\begin{array}{l}f(p) = {2
阅读全文
摘要:题意:求${x^2} \equiv n\bmod p$ 解题关键: 定理:若$a$满足$w = {a^2} - n$是模$p$的二次非剩余,即,${x^2} = w\bmod p$无解,则${(a + \sqrt w )^{\frac{{p + 1}}{2}}}$是二次剩余方程${x^2} \equ
阅读全文
摘要:需要注意的几点: (1)md5存取的数据长度仅为64位,位于数据的最前端,大于令其自然溢出。 (2)update函数和final函数处理得很繁琐,需要仔细分析。 (3)16位md5码取32位md5码的中间16位。 1、Md5.hpp 2、Md5.cpp 3、Test.cpp
阅读全文
摘要:用数组存的位,改天用unsigned int重写下。依然不负责填充。
阅读全文
摘要:该模板无填充操作。 1、AES.h 2、AES.cpp 3、main.cpp
阅读全文
摘要:百度到的论文已给出算法。 flag为1为解密,flag为0是加密。 将模板缩减了一下,sbox的结果是unsigned char,进行移位运算之后是int,SboxTrans的结果为int,右移是算术右移导致出错,最好分开写或者强转。 坑爹的错误
阅读全文
摘要:题目大意:给定一序列,可点击某一位置消除与其相邻且相同的方块,得分为$len*len$,求最大得分。 解题关键:关键是状态的构造,首先离散化一下,令$dp[i][j][k]$表示序列$i-j$且后面有$k$个与该序列最后位置相同的元素, 则$dp[i][j][k]$可以由两种情况转化而来, 1、最后
阅读全文
摘要:题目大意:你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球最低从几层楼往下丢可以让水球破掉。由于你很懒,所以你想要丢最少次水球来测出水球刚好破掉的最低楼层。 解题关键:令$dp[i][j]$表示$i$个气球,丢$j$次最多确定的层数 转移方程:$dp[i][j] = dp[i -
阅读全文
摘要:题意:按照顺时针给出操场的周边点,然后给出周围可以建设照明灯的位置,以及在该位置建设照明灯的代价,照明灯照射的范围与操场的边界相切,现在要求一个最小的花费,要求操场的所有边都被照射到。 解题关键:预处理每台灯能够覆盖到的范围,然后对环进行dp即可。对环进行dp的方法是枚举起点,覆盖所有点即可。 注意
阅读全文
摘要:题意:给出n个数,把这n个数合成一个对称的集合。每个数只能合并一次。 解题关键:区间dp,dp[l][r]表示l-r区间内满足条件的最大值。vi是大于0的,所以可以直接双指针确定。 转移方程:$dp[l][r] = \min (val(r - l + 1),val(r - i + 1) + val(
阅读全文
摘要:题意:中文题,不解释了 = = 解题关键:逆推,转化为数塔dp就可以了 dp[i][j]表示在i秒j位置的最大值。 转移方程:$dp[i][j] = \max (dp[i + 1][j],dp[i + 1][j - 1],dp[i + 1][j + 1])$
阅读全文
摘要:题意:给定n个硬币,每个硬币都有面值,求每个能构成和为k的硬币组合中,任意个数相互求和的总额种类,然后将所有硬币组合中最后得到的结果输出。 解题关键:在01背包的过程中进行dp。dp[i][j]表示组成i的总额时,是否可以组成j的额度。 假如枚举到的硬币面值为t ,如果存在dp[i-t][j]=tr
阅读全文
摘要:题意:给定一个先序遍历序列,问符合条件的树的种类数 解题关键:枚举分割点进行dp,若符合条件一定为回文序列,可分治做,采用记忆化搜索的方法。 转移方程:$dp[i][j] = \sum {dp[i + 1][k - 1]*dp[k][j]} $ 令$dp[i][j]$表示i到j里数量 1、记忆化搜索
阅读全文
摘要:解题关键:每一行每一列不能有3个炮。 令$dp[i][j][k]$表示前$i$行有$j$列有1个炮,$k$列有2个炮,状态转移见code
阅读全文
摘要:题意:给你一个串MI,按照三种规则1:M后面的部分加倍 2:III->U 3:删去连续的两个UU。看看能否变为给定的串 解题关键:将所有的U转化为I,发现 t+k*6=2^i -> =2^i%6,找规律发现 t%6==2或t%6==4
阅读全文
摘要:解题关键:先对p进行排序,消除p的影响,然后对w进行01背包即可。注意p对w的约束。j<=(cur+1)/2 优化之后:
阅读全文
摘要:解题关键:对num进行排序,从前往后扫id,及时更新
阅读全文
摘要:解题关键:$A\% (k - 1) = (A[0] + A[1]*k + A[2]*{k^2} + ...A[n]*{k^n})\% (k - 1) = (A[0] + A[1] + ...A[n])\% (k - 1)$ 然后枚举即可,注意上下界。需要注意的坑,K要>Max(A[0]……A[n])
阅读全文
摘要:解题关键:先由贪心的思想得出任何一个位置只能取1或者a[i],然后dp即可。
阅读全文
摘要:题意:给定(a,b),(x,y) ,(a,b)可以通向(a-b,b) (a+b,b) (a,a+b) (a,a-b) 求能否到达(x,y) 解题关键:类似于更相减损,变换过程中gcd是一样的。
阅读全文
摘要:题意:tsp问题,经过图中所有的点并回到原点的最短距离。 解题关键:floyd+状态压缩dp,注意floyd时k必须在最外层 转移方程:$dp[S][i] = \min (dp[S \wedge (1 < < (i - 1))][k] + dis[k][j],dp[S][i])$ 改进了一下:
阅读全文
摘要:题意:在l-r之间寻找可以满足平衡数条件的个数。 解题关键:数位dp,由于非零数的支点有且只存在一个,故只有0存在重复,最后需要删去。 1001也只存在1种情况的,仔细想想。 转移方程:$dp[i][j] + = dp[i - 1][j - a[i]*(o - i)]$ 法一:390ms 法二:将支
阅读全文
摘要:题意:求出区间内二进制表示是0的个数不小于1的个数的数的个数。 解题关键:数位dp,记忆化搜索的写法。 如果设一个三维数组,则不需要!lead。
阅读全文
摘要:题意:a吃b,b吃c,c吃a,给定一系列条件,判断出错的个数。 解题关键:种类并查集。关键是向量的合成。 设0:a与par[a]同类,1:a吃par[a] 2:a被par[a]吃 ( 儿子relation + 父亲relation ) % 3 = 儿子对爷爷的relation 利用这个公式,对向量进
阅读全文
摘要:题意:判断能否从序列中找出4个数的和为0。 解题关键:n^2预处理任意两个数的和,sort一下,双指针进行判定。 此解法尚存在一个问题,就是左右枚举的时候如果相同的有许多的时候该左边移动还是右边移动
阅读全文
摘要:题意:1个长度为2N的数,如果左边N个数的和 = 右边N个数的和,那么就是一个幸运号码。 例如:99、1230、123312是幸运号码。 给出一个N,求长度为2N的幸运号码的数量。由于数量很大,输出数量 Mod 10^9 + 7的结果即可。 解题关键: 动态规划,dp[i][j]表示i个数和为j的总
阅读全文
摘要:题意:给定钱,计算其能换成零钱的分类种数。 解题关键:完全背包计数。 $dp[i][j]$表示前i个物品构成j元的种类数,然后优化一维。
阅读全文
摘要:题意:求0~f(b)中,有几个小于等于 f(a)的。 解题关键:数位dp
阅读全文
摘要:题意:求一个序列中大于0的最小子段和。 解题关键: 先求出前缀和和,对于每个位置求某个位置到当前位置和大于1的和的最小值。然而这是复杂度是O(n^2)的。其实可以通过排序优化到O(nlogn)。对前缀和排序,且对于每个值记录索引的最大值和最小值。然后看相邻两个数是否可以组成最小正序列。 具体为什么只
阅读全文
摘要:题意:求序列上某区间最小值乘区间长度的最大值。 解题关键:很早就在《挑战程序设计竞赛》中见过了,单调栈模板题,注意弹栈时如何处理后面的元素。 法一:单调栈 法二:预处理,向左向右到达的范围。
阅读全文
摘要:题意:求a-b之间满足条件(不含4和62)的数的个数。 解题关键:数位dp入门题。 注意有无limit会出现冲突,所以limit==true的情况下需要直接进行暴力。 dp[i][j]表示剩余长度为i+1,且无约束的情况下(0-9),首位是否为6的满足条件的个数. 注:数位dp中dp数组只保存0-9
阅读全文
摘要:题意:输出<=n的数中倒数循环节长度最长的那个数 解题关键:http://w3.math.sinica.edu.tw/math_media/d253/25311.pdf https://wenku.baidu.com/view/bf86107f11661ed9ad51f01dc281e53a5802
阅读全文

浙公网安备 33010602011771号