随笔分类 - /* 圣人不死 AC不止!*/
coding不息!
摘要:题目传送门题意:训练指南P192分析:主要就是一个在路径压缩的过程中,更新点i到根的距离#include using namespace std;const int N = 2e4 + 5;struct DSU { int rt[N], d[N]; void init(void) { memset...
阅读全文
摘要:题目传送门题意:训练指南P191分析:本题特殊,n个物品,n种元素则会爆炸,可以转移到图论里的n个点,连一条边表示u,v元素放在一起,如果不出现环,一定是n点,n-1条边,所以如果两个元素在同一个集合就会爆炸.#include using namespace std;const int N = 1e...
阅读全文
摘要:题目传送门题意:训练指南P189分析:完全参考书上的思路,k^k的表弄成有序表:表1:A1 + B1 using namespace std;const int N = 750 + 5;int a[N][N];int n;struct P { int v, id; P() {} P(int v, i...
阅读全文
摘要:题目传送门题意:训练指南P187分析:用vector存id下标,可以用map,也可以离散化用数组存(发现不用离散化也可以)map#include using namespace std;map >mp;int main(void) { int n, m; while (scanf ("%d%d", ...
阅读全文
摘要:题目传送门题意:训练指南P186分析:主要为了熟悉STL中的stack,queue,priority_queue,尤其是优先队列从小到大的写法#include using namespace std;int main(void) { int n; while (scanf ("%d", &n) ==...
阅读全文
摘要:题目传送门题意:问n位最小能整除47的数字分析:打表发现前面都是100000...,后两位就是100000%47后到47的距离,就是快速幂求1000000%47的值,47-它就是后两位#include using namespace std;const int A = 47;int pow_mod(...
阅读全文
摘要:博弈 1002ZYB's Game题意:中文分析:假定两个人是绝顶聪明的,一定会采取最优的策略.所以如果选择X的左边的一个点,那么后手应该选择X的右边对称的点,如果没有则必输,否则必胜,然后再分析下就是奇数是1,偶数是0树状数组+二分(逆序数) 1003ZYB's Premutation题意:已知每...
阅读全文
摘要:水A - Uncowed Forces#include using namespace std;typedef long long ll;const int N = 1e5 + 5;const int INF = 0x3f3f3f3f;int main(void) { int s[5] = {50,...
阅读全文
摘要:题目传送门题意:输入一大堆字符串,问字典序输出每个字符串占的百分比分析:二叉搜索树插入,然后中序遍历就是字典序,这里root 被new出来后要指向NULL,RE好几次.这题暴力sort也是可以过的...//#include #include #include #include using names...
阅读全文
摘要:题目传送门题意:有两种关系,n牛按照序号排列,A1到B1的距离不超过C1, A2到B2的距离不小于C2,问1到n的距离最大是多少.如果无限的话是-2, 如果无解是-1分析:第一种可以写这样的方程:d[v] - d[u] = w2 => d[u] - d[v] #include #include #i...
阅读全文
摘要:题目传送门题意:题目巨晦涩的传递出1点和n点的初度等于入度等于1, 其余点出度和入度相等分析:求最小和可以转换成求最短路,这样符合条件,但是还有一种情况.1点形成一个环,n点也形成一个环,这样也是可以的,这样SPFA要稍微修改点,d[s] = INF,表示可以更新.#include using na...
阅读全文
摘要:题目传送门题意:求A到B不同最短路的条数(即边不能重复走, 点可以多次走)分析:先从A跑最短路,再从B跑最短路,如果d(A -> u) + w (u, v) + d (B -> v) == shortest path,那么这条边就是有用边(在最短路中),利用这个性质重新建最大流的图,然后增广路算法D...
阅读全文
摘要:Problem Statement You are a genealogist specializing in family trees of vampires. Vampire family trees differ from human family trees. In particular,
阅读全文
摘要:题目传送门题意:有两种路径,每个点会分别在某一层,层相邻之间权值c.还有直接两点传送,花费w.问1到n的最短距离.分析:1~n正常建边.然后n + a[i]表示i点在第a[i]层.然后再优化些就不会超时了.#include #include #include #include using names...
阅读全文
摘要:题目传送门题意:收过路费.如果最后的收费小于3或不能达到,输出'?'.否则输出到n点最小的过路费分析:关键权值可为负,如果碰到负环是,小于3的约束条件不够,那么在得知有负环时,把这个环的点都标记下,DFS实现.#include #include #include #include using nam...
阅读全文
摘要:题目传送门题意:这题题目难懂.问题是A到B最少要转换几次城市.告诉每个城市相连的关系图,默认与第一个之间相连,就是不用转换,其余都要转换.分析:把第一个城市权值设为0, 其余设为0.然后Floyd跑一下,得到A到B最少转换几次.有点水#include #include #include using ...
阅读全文
摘要:题目传送门题意:列车上行驶40, 其余走路速度10.问从家到学校的最短时间分析:关键是建图:相邻站点的速度是40,否则都可以走路10的速度.读入数据也很变态.#include #include #include #include #include using namespace std;const ...
阅读全文
摘要:题目传送门题意: m组关系,A能打败B,问最后有几头牛的排名能确定分析:如果排名确定,那么能打败它的到它一定通,它到能打败的一定能通,也就是和为n-1.用Floyd的传递闭包#include #include #include using namespace std;const int N = 1e...
阅读全文
摘要:1003玩骰子暴力枚举抛的骰子的点数,算出获胜的方案数,然后在三个里面选择最大值。#include using namespace std;int a[4], b[4];bool all_same(int *c) { return (c[1] == c[2] && c[2] == c[3]);...
阅读全文
摘要:题目传送门 1 2题意:有向图,所有点先走到x点,在从x点返回,问其中最大的某点最短路程分析:对图正反都跑一次最短路,开两个数组记录x到其余点的距离,这样就能求出来的最短路以及回去的最短路.POJ 3268//#include #include #include #include #include ...
阅读全文