分类: 未分类

544 篇文章

P1034 [NOIP2002 提高组] 矩形覆盖
Aimee 数据很小,直接爆搜 唯一麻烦的是检查是否重叠以及计算面积 但问题也不大 记得剪枝 #include #include #include #include #include using namespace std; int n,k; int xx[505],yy[505]; int x,y; struct b{ int f; int t;…
P1027 [NOIP2001 提高组] Car 的旅行路线
Aimee 非常简单 运用一点点的数学知识算出两两之间的距离 然后跑最短路 #include #include #include #include #include using namespace std; int xx,yy,xxx,yyy,xxxx,yyyy,xxxxx,yyyyy; int su[10001]; int n; double d…
P2756 飞行员配对方案问题 提交 13.91k 通过 7.59k 时间限制 1.00s 内存限制 125.00MB 返回题目
Aimee 可以用网络流解决 建超级源点与超级汇点,源点与所有的外籍飞行员相连,容量为1(顶多选一人一次) 超级汇点同理,容量还是1,而飞行员之间的点就可以使大于等于1的任意数 顶多只有1的流量 最后所有漫流的边即为方案 方案书就是最大流 #include<iostream> #include<cstdio> #includ…
P2740 [USACO4.2]草地排水Drainage Ditches(dinic)
Aimee 显然这是一个网络流 一开始,我们大可以随便找一条可行流 然后再找一条,可是如果要返回怎么办?可以建立对应的反向边,反向边的容量即即为正向边流量,构成残余网络,在残余网络上找到的从s$rightarrow$t的路径,就是一条可行流,并且,找到最大流的充要条件是它的对应残余网络没有增广路 这就是FF #方法 那么怎么求呢,一下给出了dini…
P3376 【模板】网络最大流(ek)
Aimee 显然这是一个网络流 一开始,我们大可以随便找一条可行流 然后再找一条,可是如果要返回怎么办?可以建立对应的反向边,反向边的容量即即为正向边流量,构成残余网络,在残余网络上找到的从s$rightarrow$t的路径,就是一条可行流,并且,找到最大流的充要条件是它的对应残余网络没有增广路 这就是FF #方法 那么怎么求呢,一下给出了EK做法…
P2422 良好的感觉
Aimee 真不知道和dp有啥关系 两个关键值,区间和和区间最小值 那么直接左右扩展一个点能作为最小值的最大区间(反正是正整数) 然后算就行了 #include #include #include using namespace std; typedef long long ll ; const int maxn=100001; ll sum[ma…
P3805 【模板】manacher算法
Aimee 马拉车算法,以优秀复杂度求解回文子串 我认为的关键:减少重复计算 用r表示当前已知回文子串右边界,id表示其中心的位置 显然我们当下求解的i应该再id右边 如果这个i在r的左边,那么显然在id的中心中,因该有一个关于i的对称点,并且因为位置的的原因,左边点的回文是已经被算出来了的,那样可以直接解决i到r部分的回文 然而更远的部分呢?就需…
P1541 [NOIP2010 提高组] 乌龟棋
include include include include using namespace std; int c[5]; int n,m; int a[10001]; int x; int dp[41][41][41][41]; int find(int i,int j,int k,int z){ int ans=0; if(i!=0){ an…
HDU4089Activation
Aimee 想出状态转移的难度很小 很强的题解 #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> using namespace std; const int …
HDU4035Maze
Aimee 打着期望dp的名字推式子 这位大佬写的非常好 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace std; int t…