
other
alusang
T^T
展开
-
SGU-143-树形dp
第一次见树形dp,就是整棵树的问题划分为子树的问题,然后递推,用搜索实现#include #include #include #include #include using namespace std;const int maxn=16000+3;int n,u,v,t;int val[maxn],sum[maxn];vector G[maxn];int DFS(in原创 2018-03-31 22:50:03 · 176 阅读 · 0 评论 -
2018徐州网络赛-A-Hard to prepare-递推
题意就是有n个人围成圈,每个人能选择顶不同的帽子,但是相邻两个人选择的帽子的编号不能同或为0,问有多少种方案按照第一直觉选择帽子,第1个人有种选择方案,第2到第n-1个人均有种方案第n个人的方案数取决于第1个和第n-1个人的帽子编号是否相同相同时为种方案,不相同时有种方案,总答案是两种情况求和,到此是第一直觉但是我们忽略了交叉的情况,即第n-1个人的那种方案中包含了第n-1个人和第...原创 2018-09-12 09:57:24 · 331 阅读 · 0 评论 -
Gym-101775B-贪心(2017-EC-final-B)
这个题主要是如何分配每只羊我们可以一开始每个罪行分配一只羊然后剩下的优先分配给对方差贡献大的也就是先分配给增加一只羊后降低最多的#include <bits/stdc++.h>using namespace std;const int N=2e5+5;int t,n,m,sum,x;double v;struct P{ int val,num;...原创 2018-09-03 12:31:12 · 514 阅读 · 0 评论 -
CTU-2017-H 找循环
这个题就是求1-n的一个排列,最少交换多少次能变成递增排列看过置换的都知道任何一个排列都能表示成几个循环的乘积那么我们这里找出每个循环,记录每个循环有几个元素在一个循环里最少的交换次数就是元素个数减一#include <cstdio>#include <cstring>#include <algorithm>#include <io...原创 2018-08-21 19:44:09 · 272 阅读 · 0 评论 -
Gym-101775J-差分(2017-EC-final-J)
这个题过了一年才补QwQ这个题可以用差分的思想来做,首先来了解一下差分:差分就是将一串数分别于前一个数做差,例如:一个序列1 2 5 4 7 3,差分后得到1 1 3 -1 3 -4 -3这里注意得到的差分序列第一个数和原来的第一个数一样(相当于第一个数减0)差分序列最后比原序列多一个数(相当于0减最后一个数)性质:1、差分序列求前缀和可得原序列2、将原序列区间[L...原创 2018-08-31 21:45:01 · 662 阅读 · 0 评论 -
CTU-2017-G 二分图匹配(最大独立集)
题意是问最多有多少个灯能在任意两个间距不少于1.3m的情况下被安置那么很明显矛盾所在是两盏灯距离小于1.3m时只能选择其中一盏那么就好办了,将有矛盾的建双向图然后求最大独立集就是最大的安置灯数了另外注意一点是这个题卡匈牙利算法的邻接矩阵方法邻接矩阵时间复杂度n的立方,所以这题会超时改成邻接表,时间复杂度是nm,就能AC了#include <cstdio>...原创 2018-08-24 12:05:17 · 415 阅读 · 0 评论 -
Gym-101128A-思路DFS
我们存图的时候正着存一遍,倒着存一遍正着DFS每个点的儿子,记录下来每个点有多少个子孙,反向亦如此然后这样想:总点数n减去某个点的子孙和它本身,也就是剩下的点,如果小于晋升人数a表示这个点一定晋升然后反向的子孙数与本身的和如果大于晋升人数b表示这个点一定不可能被晋升#include <cstdio>#include <cstring>#incl...原创 2018-08-17 15:50:20 · 225 阅读 · 0 评论 -
CTU-2017-B 二分
这个题可以直接二分答案来验证这个时间能不能满足题意验证时要注意一点,后面的多出来的水不能去弥补前面缺少的水#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <vector>#include <que...原创 2018-08-22 21:43:51 · 274 阅读 · 0 评论 -
二进制法枚举无重复元素子集
#include <iostream>#include <cstring>#include <cstdio>using namespace std;int arr[40];void print_subset(int n,int s){ for(int i=0;i<n;i++) if(s&(1<...原创 2018-02-20 12:02:24 · 316 阅读 · 0 评论 -
HNU-10269-dp
算法实验的题目(准备考试ingQAQ)#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>#include <vector>#include <queue>#include原创 2018-06-11 17:47:43 · 141 阅读 · 0 评论 -
2018-沈阳网络赛-D-K短路
这个题就是求一个有向边的K短路问题,有向边必须将边分开存,当无向边时不用分开存#include <cstring>#include <cstdio>#include <iostream>#include <vector>#include <algorithm>#include <queue>#define I...原创 2018-09-10 21:00:54 · 253 阅读 · 0 评论