
ZJOI
LauZiyang
exploring
展开
-
省选专练ZJOI2006皇帝的烦恼
这题可以蜜汁骗分直接输出两边之和最大值——60,对于省选还是不错的。答案绝对保证单调。于是考虑二分。check不好写。用dp判。看代码吧#includeusing namespace std;int a[30001]={0};int maxsum[30001]={0};int minsum[30001]={0};int n;void init(){ memse原创 2017-12-11 23:26:00 · 319 阅读 · 0 评论 -
省选专练之斜率优化[ZJOI2007]仓库建设
乍一看不好维护前缀和观察前缀关系:令 有:贡献为 暨拆开:故设: 对于朴素DP、转移有:设k为选中点有:消去相同项不妨设 有完毕#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#inc...原创 2018-08-16 22:00:33 · 121 阅读 · 0 评论 -
省选专练 [ZJOI2006]物流运输
这种是现在NOIP爱考的的东西啊!!!首先:明显想到最短路那么怎么搞?定义Cost(i,j)从第i天到第j天可行的最短路。F(i)为前i天最小代价,然后就随便搞了啊。#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#includ...原创 2018-07-20 08:12:54 · 335 阅读 · 0 评论 -
省选专练[ZJOI2008]瞭望塔
模板能够满足条件的一定出自核是吧于是咱跑个半平面交。答案出自跑出来的凸壳的顶点上。#include<bits/stdc++.h>using namespace std;const double INF=1e16;const double eps=1e-8;const int N=20000;int n;double ans=INF;int cmp(double x){ ...原创 2018-03-21 15:37:26 · 190 阅读 · 0 评论 -
省选专练ZJOI2012旅游
STL在开O2后自然是大水题。考点:树的直径。第一二次构图。把每一个三角块相邻的建边。怎么建?STL-你都做到这个题了MAP hash两个值铁定会吧。但是ZJOI没有那么好心,不过你也有70分了。于是这样:把两点建边。排个序。相同的时候连起来。树的直径。很多人求复杂了。树的直径一遍DFS就可以,不需要两遍BFS。#include<bits/stdc++.h>using namespa...原创 2018-03-13 14:23:05 · 221 阅读 · 0 评论 -
省选专练ZJOI2005午餐
这是个好题考察dp优化,dp,贪心,01背包变种。好首先对吃饭时间从大到小排序,因为一队人打饭时长总和一样。dp(i,j)表示前i个人,第一组用j的时间。放第一个背包:dp[i][j]=min( max(dp[i-1][j-a[i].w],j+a[i].v) )放第二个背包:dp[i][j]=min( max(dp[i-1][j],sum[i]-j+a[i].v) )最会遍历一遍。然后就是滚动数组...原创 2018-02-21 21:35:18 · 136 阅读 · 0 评论 -
省选专练ZJOI2012小蓝的好友
第一考虑容斥原理。然后扫描线扫过去,用一棵可持久化平衡树treap维护搞。http://wjmzbmr.com/archives/zjoi_2012_round_1_mrx_detailed_problem_solutions/陈老师的说的很不错。#include<iostream>#include<cstdio>#include<algorithm>#i...原创 2018-03-06 21:39:58 · 181 阅读 · 0 评论 -
省选专练ZJOI2011看电影
高精度+组合数学#include#include#include#include#includeusing namespace std;/*先加上一个位置并看成一个环,那么方案数就是(K+1)^n,并且可以保证一定合法,因为是环,又因为是环可以转有K+1个方案重复了,所以实际上是(K+1)^n-1。 拆掉一个空座位回到原问题,因为是空位,所以一定没有人跨过去,任何一个空位都可拆,那原创 2018-01-13 17:27:01 · 188 阅读 · 0 评论 -
省选专练ZJOI2004书架
和06的书架比,这可是数学的多。必须使用置换群+离散。搜一个就是的了。#includeusing namespace std;int a[2001]={0};int use[2001]={0};int n,minsum,ji,ou;int odd(int x){ return x%2;}void dfs(int k,int ki,int od,int even){ u原创 2017-12-11 23:28:18 · 175 阅读 · 0 评论 -
省选专练之[ZJOI2008]骑士
是个基环树就是早期仙人掌没引入OI的时候把树搞难的办法做法有点像小C的独立集(我好毒啊仙人掌的题似乎要难一点吧)于是找环(DSU即可)然后随便断环就完了// luogu-judger-enable-o2#include<bits/stdc++.h>using namespace std;const int N=1e6+100;typedef int...原创 2018-08-28 16:33:52 · 193 阅读 · 0 评论