题目 题目大意 给你一棵树和树上的许多条从后代到祖先的链,选择每条链需要一定代价,问覆盖整棵树的所有点的最小代价是多少。 \(n,m\leq 100000\) 正解 (由于时间过于久远,所以直接说正解算了) 对于这样的题,显然有一种暴力的DP做法。 设\(f_{i,j}\)表示\(i\)子树全部被覆盖,其中伸出来的
「JOISC 2014 Day1」巴士走读 将询问离线下来。 从终点出发到起点。 由于在每个点(除了终点)的时间被过来的边固定,因此如果一个点不被新的边更新,是不会发生变化的。 因此可以按照时间顺序,依次提高终点的时间,然后跑dijkstra(记得把访问标记回滚清空掉)。 每条边被跑过了就不再跑了。可以
题目背景 Osu 听过没?那是Konano 最喜欢的一款音乐游戏,而他的梦想就是有一天自己也能做个独特酷炫的音乐游戏。现在,他在世界知名游戏公司KONMAI 内工作,离他的梦想也越来越近了。 这款音乐游戏内一般都包含了许多歌曲,歌曲越多,玩家越不易玩腻。同时,为了使玩家在游戏上氪更多的金钱花更
个人总结 python python 数列 元祖 排序 一个数所有位数中的最大值 “”"num=int(input(“输入该数”)) c=0 mx=0 while num>0: c=num%10 num=num//10 if mx<c: mx=c print(mx)""" 统计字符大小写字母,数字的个数,并求出来最大值和最小值 “”“i=1 j=0 p=0 q=0 zf=input(“
原题地址:https://www.lydsy.com/JudgeOnline/problem.php?id=2457 Description Sherry现在碰到了一个棘手的问题,有N个整数需要排序。 Sherry手头能用的工具就是若干个双端队列。 她需要依次处理这N个数,对于每个数,Sherry能做以下两件事:
HDU - 5411 考虑直接dp会T, 用矩阵优化一下就好了。 #include<bits/stdc++.h>#define LL long long#define LD long double#define ull unsigned long long#define fi first#define se second#define mk make_pair#define PLL pair<LL, LL>#define PLI pair<LL, int>#defin
原题链接: bzoj 题意简述 一个n∗mn*mn∗m的矩阵,要放n+mn+mn+m个守卫,每个守卫只能守住所在行或所在列(只能选择一个)。在i,ji,ji,j位置上放守卫的代价是w[i][j]w[i][j]w[i][j],求:守住所有行和列的最小代价和。 数据 输入 n m //行,列。n,m<=100000,但是注意 n*m<=100000!!! x x ...
目录 @description@ @solution@ @part - 1@ @part - 2@ @part - 3@ @part - 4@ @accepted code@ @details@ @description@ 在比特大陆上有 n 个城市,它们按照海拔从高到低依次被标记为 1,2,…,n,任意两个城市的海拔都不相同。有一条河流发源于海拔最高的 1 号城市,经过 n−1
@1091. Shortest Path in Binary Matrix方法1: bfs方法2: dfs, TLE In an N by N square grid, each cell is either empty (0) or blocked (1). A clear path from top-left to bottom-right has length k if and only if it is composed of cells C_1, C_2, …, C_k such t
树上边的差分,给每个点赋值为0,对于非树边(x,y)x,y权值+1,lca(x,y)-=2,再dfs #include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#define MN 200050using namespace std;int n,m,cnt,head[MN],ans[MN],dfn[MN],num[MN];int f[MN][21];int lg[MN];stru
真的是很好的题 要通过左端点 l 和中间点k进行比较 然后n3来转移 #include<bits/stdc++.h>using namespace std;#define maxn 505char s[maxn];int dp[maxn][maxn],n;int main(){ cin>>n>>s+1; memset(dp,0x3f,sizeof dp); for(int i=1;i<=n;i++)dp[i][i]=1; for(int
版本1: Sub 合并目录所有工作簿全部工作表() Dim MP, MN, AW, Wbn, wn #定义变量(MP=MyPath,MN=MyName,AW=ActiveWorkbookName,Wbn=WorkBookName,wn=workbooksheet(i)name),但未指定变量类型,这样不是很规范 Dim Wb As Workbook
A 签到贪心题,特判了n=1或m=1的情况才发现2<=n,m<=1e5 #include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+7;int n,m;ll ans,a[N],b[N];int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)scanf("%I64d
對於不嚴格單調的我們可以n^2DP,首先每個數一定在原數組中出現過,如果沒出現過不如減小到出現過的那個花費更小,效果相同 所以f[i][j]表示把i改到離散化后j的最小代價,每次維護前一狀態最小值mn再加上這次的值就是答案 圖像沒看懂:https://blog.csdn.net/lycheng1215/article/details/80
LJJ爱数数 求\(\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n\epsilon(gcd(i,j,k))(\frac{1}{i}+\frac{1}{j}==\frac{1}{k})\) 解 显然无法用Mobius反演,问题在于\(\frac{1}{i}+\frac{1}{j}==\frac{1}{k}\),要将其转换为gcd条件。 法一:先约数拆分,再证明对应相等 分数我们无法处理,所以有 \[(
题目 有 \(n\) 个圆$c_1,c_2, \cdots , c_n $,执行如下的操作: 找到剩下的半径最大的圆删除并删除所有和它有交的其他并没有被删除的圆; 求每个圆是被那个圆删除的; $1 \le n \le 3 \times 10^5 $ ; 描述 kdt做法: 记录每个圆围成的举行作为剪枝,直接模拟删除; 记得旋转一下,然后eps开1e-3
<?php $contact2 =[ ['江苏'=>['华罗庚','河南','童第周']], ['河南'=>['童第周','华罗庚','河南']], ['河北'=>['刘恒','江苏','河南']]
在虐各种最长公共子串、子序列的题虐的不耐烦了之后,你决定反其道而行之。 一个串的“子串”指的是它的连续的一段,例如bcd是abcdef的子串,但bde不是。 一个串的“子序列”指的是它的可以不连续的一段,例如bde是abcdef的子串,但bdd不是。 下面,给两个小写字母串A,B,请你计算: (1) A的
链接:https://ac.nowcoder.com/acm/contest/548/A来源:牛客网 题目描述 这次 Tachibana Kanade 来到了一个神奇的学校参观,她发现了一些有趣的事情。 这个学校的所有人脾气都十分的古怪:每个人都有两个属性 aiai 和 bibi,每个人都想和除他以外所有 j 满足 ai+bi=ajai+bi=aj 的人搞好关
题目链接 BZOJ:https://lydsy.com/JudgeOnline/problem.php?id=4822. 洛谷:https://www.luogu.org/problemnew/show/P3755. Solution 直接上\(kd\_tree\)就好了。 为啥我觉得bzoj机子比洛谷快些 #include<bits/stdc++.h> using namespace std; void read(int &x) { x=0;int f=1;
Description 题目链接 求一张无向带权图的边双连通生成子图的最小代价。 Solution 核心的思路是,一个点双连通分量肯定是一堆环的并。 考虑增量地构造这个边双连通图,每次把一个环并进去,相当于加入了一条链。 那么这个转移需要:原集合的代价,链的代价,链的端点连入集合的代价。 设 \(A
题目传送门 题目分析: 似乎是个裸题。。 把边权放到深度大的那个点上,查询的时候去掉lca就好了。 (然而我虽然知道这一点打的时候仍然把lca加进去了。。 ) 然后就是疯狂复制粘贴再ctrlF替换。。 然而还是WA。。写的时候C操作改点的时候没有用dfs序直接把点编号带了进去。 后来又发
Description Solution T1 game 咕咕咕 T2 string 咕咕咕 T3 hunter 概率dp \(f_{i,j}\)表示得是当前被射中的是第\(i\)号猎人,当前还有\(j\)个人时,的答案。 当然我们所说的\(i\)号是对当前剩余猎人进行排序后,从\(1\)号猎人开始数的第\(i\)个,所以\(i\leq j\) 有一个约定是当前剩
小结: 1、非奇异的;非退化的:只有输入为0(可以泛化的概念)结果才为0 2、If A ∈ Mm,n(F) and m < n, then A isnecessarily singular. A s*n s<n 则A必然奇异的。 A linear transformation or matrix is said to be nonsingular if it produces the output 0 only for th
题意 题目链接 分析 假设当前的根为 rt ,我们能够在奶牛到达 \(u\) 之时拦住它,当且仅当到叶子节点到 \(u\) 的最短距离 \(mn_u \le dis_u\) 。容易发现,合法的区域是许多棵子树,而我们要求的就是有多少棵子树。 由于除了以 rt 为根的子树都可以用 \(\sum\limits_{x\in subtree} 2-deg