tarjan找环。我们通过枚举一个点的入边为wolf/village出边为wolf/village ,可以知道,当且仅当,一个环里面有且仅有一个出边为wolf的时候,被指向的那个人为wolf。 一旦能够确定wolf了,那么所有指向wolf的人,如果出边为village,那么这个人也是wolf。反向d ...
分类:
其他好文 时间:
2020-03-23 11:23:26
阅读次数:
83
题目 多组数据,给定一个$n n$的矩阵($n\leq 80,a_{i,j}\leq 10^9$) 多组询问一个以$(x,y)$为中心,边长为$L$的子矩阵最大值$mx$和最小值$mn$, 并将$(x,y)$这一个位置修改为$\lfloor\frac{mn+mx}{2}\rfloor$,每次询问输出 ...
分类:
其他好文 时间:
2020-03-22 23:50:01
阅读次数:
67
简单dp。 题目大意:有n种珍珠,这n种珍珠有不同的需求量,不同的价格,价格越高,质量越高,在购买每一种珍珠时,都需要在原来的基础上多买10个。也就是说如果需要买x种珍珠,那就要付x+10个的钱。每一种珍珠必须购买大于等于自身价格的珍珠 输入一个t(100以内)表示t组测试,一个n,n种珍珠,a[i ...
分类:
其他好文 时间:
2020-03-20 17:12:37
阅读次数:
65
首先可以发现,若是后手能赢,那么先手取后手的值,一定能赢,所以首先排除后手胜。 对于平局,当且仅当,所有异或值为零,无论怎么取,双方均相等。剩下的便是先手胜利。 ...
分类:
其他好文 时间:
2020-03-18 22:06:45
阅读次数:
74
状压dp,先记录偶数状态,然后直接暴力转移即可。 ...
分类:
其他好文 时间:
2020-03-18 21:55:01
阅读次数:
62
分块+floyd 令dp[i][j][k]表示i到j恰好k条路经的最小权值。那么就有:dp[i][j][k]=min{dp[i][p][k 1]+dp[p][j][1]}我们可以预处理出前100条路径的dp值。然后考虑大范围转移,对dp[i][j][100]做一次floyd转移到200,再做一次转移 ...
分类:
其他好文 时间:
2020-03-18 21:44:16
阅读次数:
55
题目大意:每一个城市都有一定的魅力值,然后有一个有向图,根据这个有向图从1到n+1所获得的魅力的最大值,并输出路径(要求只能从编号娇小的城市到编号较大的城市)。 题解:很容易想到最短路+路径纪录。但是感觉有点小题大做了。我开始的方法是dfs+dp,dp[i]表示i的子节点最大的魅力值,但是它给的是一 ...
分类:
其他好文 时间:
2020-03-18 18:27:29
阅读次数:
50
``` //将含有N个元素的一个集合分成M个子集,使得每个子集的最大值与最小值平方差的和最小。 #include #include #include #include using namespace std; typedef long long ll; const int maxn = 1e4+50... ...
分类:
其他好文 时间:
2020-03-18 18:27:15
阅读次数:
60
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1711/ 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef unsigned int ui; 4 typedef long long ll; 5 ...
分类:
其他好文 时间:
2020-03-18 14:05:17
阅读次数:
65
题目网址:http://icpc.njust.edu.cn/Problem/Hdu/2087/ 代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef unsigned int ui; 4 typedef long long ll ...
分类:
其他好文 时间:
2020-03-18 13:30:23
阅读次数:
57