tarjan算法:离线处理询问,核心思想是并查集。 如该图,现有4个询问:6-7,6-9,7-10,2-11 实现:1.先把询问数翻倍,除了本身的询问,还要增加两个点反过来的询问,即7-6,9-6,10-7,11-2。为什么要这样?因为在询问时,不知道两个点的先后顺序。 2.从根结点出发,做dfs遍 ...
分类:
其他好文 时间:
2020-03-17 12:41:50
阅读次数:
69
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1072/ 题意:逃离迷宫,路中可能有炸弹,总时间是6个单位,在有炸弹的位置,如果到达的时刻时间大于0,则恢复到6时间,炸弹的位置可以重复到达,求出最终至少需要多少步才能走出迷宫,到达终点。这样的最优化问题和地图相关 ...
分类:
其他好文 时间:
2020-03-17 08:22:43
阅读次数:
63
"Link" 如果$l=r$那么我们给它加个特判。(虽然数据里没有) 先写出答案的表达式: $$ \frac{\int_{l_1}^{r_1}\cdots\int_{l_n}^{r_n}|\sum\limits_{i=1}^nx_i|\mathrm dx_n\cdots\mathrm dx_1}{\ ...
分类:
其他好文 时间:
2020-03-17 00:04:11
阅读次数:
79
问题描述 (图3.1-1)示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。 ●每一步可沿左斜线向下或右斜线向下走; ●1<三角形行数≤100; ●三角形中的数字为整数0,1,…99; . (图3.1-1) 输入格式 文件中首先读到的是三角形的行数。 ...
分类:
编程语言 时间:
2020-03-16 23:58:45
阅读次数:
123
一、场景 并查集多数是用来解决连通性问题的 如至少修建几条路可以使所有路口可以相通 把互通的路口当做一个群组,那问题就是有几个这样的群组 如有N个群组 那至少修N-1条路 就可以把所有路口相连。 二、使用 并查集分两步 1、合并 合并就是把相连的多个节点划到一个群组中 可以定义数组parent[] ...
分类:
其他好文 时间:
2020-03-16 23:47:39
阅读次数:
87
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1728/ 关于广度优先搜索的第一篇题解。广度优先搜索,就是状态树的层次遍历,一层一层的搜索,直到搜索到目标状态为止。在扩展的过程中设定一种由上一层扩展到下一层的转化机制,将出现的新的状态放入队列之中,每次取出队首元 ...
分类:
其他好文 时间:
2020-03-16 21:48:42
阅读次数:
75
概率+0 1背包 要算成功的最大概率,那就是失败的最小概率,所以01背包直接让失败的概率最小就行了。 注意: 概率与概率之间是要相乘的,不是相加。 #include<bits/stdc++.h> using namespace std; const int N=1e4+7; int weight[N ...
分类:
其他好文 时间:
2020-03-16 12:49:57
阅读次数:
39
``` //dp[i][j][0]表示i位数模13为j当前没有包含13并且最高位不为1的方案数; //dp[i][j][1]表示i位数模13为j当前没有包含13并且最高位为1的方案数; //dp[i][j][2]表示i位数模13为j当前包含13的方案数。 #include #include #inc... ...
分类:
其他好文 时间:
2020-03-15 21:55:56
阅读次数:
59
``` //f[i,j]一共有i位数字,且最高位是j,而且不包括4和64的数的个数 //f[i-1,k] 表示次高位为k //如果合法,那么需要满足 j、k都不为4 jk不是62 #include #include #include #include using namespace std; con... ...
分类:
其他好文 时间:
2020-03-15 15:06:35
阅读次数:
52
``` #include #include #include #include using namespace std; typedef long long ll; const int N = 35; ll n; ll f[N][30]; void init() { //处理一位的数字 for (i... ...
分类:
其他好文 时间:
2020-03-15 15:05:02
阅读次数:
51