
SCOI
LauZiyang
exploring
展开
-
省选专练SCOI2007修车
#include#define INF 2e9+7using namespace std;int n,m;struct Front_star{ int u,v,w,c,nxt;}e[400010];int cnt=1;int first[20001]={0};void addedge(int u,int v,int w,int c){ cnt++; e[cnt].u=u;原创 2017-12-09 11:19:20 · 195 阅读 · 0 评论 -
和Leo一起做爱数学的好孩子之容斥 【SCOI2010】幸运数字
在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是“幸运号码”!但是这种“幸运号码”总是太少了,比如在[1,100]的区间内就只有6个(6,8,66,68,86,88),于是他又定义了一种“近似幸运号码”。lxhgww规定,凡是“幸运号码”的倍数都是“近似幸运号码”,当然,任何的“幸...原创 2018-10-09 22:47:17 · 1593 阅读 · 0 评论 -
省选专练SCOI2009windy数
数位DP但是并不需要记忆化搜索,只需要拼块就好了#include<bits/stdc++.h>using namespace std;typedef int INT;#define int long longint f[13][10]={};int a[10]={};int solve(int x){ if(x==0) return 0; int len=0; w...原创 2018-05-09 23:48:13 · 122 阅读 · 0 评论 -
省选专练【SCOI2010】字符串
那个转化太毒瘤了首先全集减补集请看图(原谅我的surface没有带笔手画的)(n+m,n-m)表示一个状态,是指x坐标为n个1+m个0,y坐标是指n个1-m个0,明显答案态(n+m,n-m)然后那么如果第i位选1那么就是从第i-1这个状态转移,向右上走一步,同理,0为向右下走一步。那么易得这样终态为(n+m,n-m)的情况为C(n+m,m)那么这没有考虑限制对吧限制的本质是出现i-1转移点是从负y...原创 2018-04-21 11:34:45 · 237 阅读 · 0 评论 -
省选专练SCOI2008奖励关
状压DP转移模式像极了POI2007ATR还是读进来预处理可达性状态模式。然后倒着跑(因为这是期望状压)#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;double ...原创 2018-03-23 23:28:11 · 129 阅读 · 0 评论 -
省选专练SCOI2015小凸想跑步
终于快把SCOI练完了。。。毒瘤题这个题难点不在半平面交,在于推导:其次精度问题eps 和INF 取值需谨慎。大了会丢精度,小了会炸精度。接着得开long double于是流输出。#include<bits/stdc++.h>using namespace std;#define double long doubleconst double INF=1e16;const dou...原创 2018-03-22 21:38:34 · 174 阅读 · 0 评论 -
省选专练 [SCOI2009]游戏
题目的意思:求总和n以下所有LCM的和这是一个先线性筛。然后就是多重背包了。因为对于一串数的LCM是一个质数最高幂之积。#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>using namespace std;...原创 2018-02-25 17:53:21 · 214 阅读 · 0 评论 -
网络流学习总结和省选专练SCOI2015小凸玩矩阵
这是四川连着第几个年头考二分套网络流了?虽然这是一个二分图最大匹配,但是我匈牙利写挂了。我太弱了。好了不瞎扯牛逼了,这个题这么搞:首先题目就告诉你求第k大最小。首先这就让人瑟瑟发抖。。。。第k大诶,这种出了就是难题。但凡事总有意外。我们知道。这个行列单一模型是二分图常见模型。zjoi2007矩阵游戏。开山鼻祖,可以玩玩。还有World Final 2017 碟中谍(Mision Impossibl...原创 2018-03-01 16:00:43 · 334 阅读 · 0 评论 -
省选专练【SCOI2013】火柴棍数字
第一贪心。引理:对于可以取出的数字要让可达性最大。在队首填1.如果可达性为奇数?那么队首是7别的是1.坑点。对于每个数转换为别的数,其本质是01可达性分组背包。组:组数为n每个组有严苛的10个物件。我们需要维护一个常量数组int trans[10][10]={ 0, 4, 2, 2, 3, 2, 1, 3, 0, 1, 0, 0, 2, 0, 0, 1, 1, 0, 0, 0, 1, 4, ...原创 2018-02-28 16:02:26 · 887 阅读 · 3 评论 -
省选专练[SCOI2013]摩托车交易[NOIP2013]货车运输
经典题。做一次MST然后跑LCA这样的题我做了五个:交易啊!交易啊!跑一个最大生成树,然后贪心就好了来源:某7th sc代码丑陋。#include<bits/stdc++.h>using namespace std;#define LL "%lldconst int BUF_SIZE = 30;char buf[BUF_SIZE], *buf_s = buf, *buf_t =...原创 2018-02-27 20:44:17 · 211 阅读 · 0 评论 -
省选专练SCOI2014方伯伯的商场之旅
这算不算是数位DP? Who Knows。算法核心: 如果朴素算法最傻逼的那种: 效率:O(R-L1+1)*log(k,r)^2好的你只能跑20分那么仔细一看,诶?有人跑了30分暴力! 他们很明显少挂了一个log。怎么优化? DP优化无外乎这几种,这里就是前缀和。维护前缀:效率log(k,r); 然后:最重要的一步 ——> (^▽^)! 我们贪心。 先考虑所有数结论点都是1号点。 那么怎么l...原创 2018-02-27 17:29:18 · 232 阅读 · 0 评论 -
省选专练[SCOI2014]方伯伯运椰子
考察两个:1)网络流理论。2)分数规划。引理:费用流残量网络中:出现负环说明可以调整流量更优。且:(x-y)/k->sigma(Bi+Di)/sigma(Ai-Di)可以得知答案呈一个上凸壳。二分答案。建造残量网络。add(u,v,Bi+Di)->xjb扩容add(v,u,Ai-Di)->xjb缩容->负环来源。好的你已经死了。c==0是没法缩的。好的这回就没什么了。#in...原创 2018-02-27 17:24:31 · 203 阅读 · 0 评论 -
省选专练SCOI2005扫雷
这是一个智商检测题状压DP。如果你玩过扫雷,并且内心有一棵平衡树(BB数),你就会发现答案只有0,1,2共计三种。于是法一:模拟。答案对不对只会取决于第一个是什么。模拟两边就好了。#include<bits/stdc++.h>using namespace std;int i,j,k,m,n,ans=2,a[10001],b[10001];void checkx(){ ...原创 2018-02-13 17:15:24 · 195 阅读 · 0 评论 -
省选专练SCOI2008天平
这是一个简单的置换群观察数据很重要,眼睛是个好东西。只有1,2,3g三种。那就简单了。差分约束嘛。但是这个题的约束条件稍有不同,因为条件太少。考虑上界和下界。数据辣么小,floyd水过。#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<...原创 2018-02-12 15:35:25 · 222 阅读 · 0 评论 -
省选专练[SCOI2014]方伯伯的OJ
大大大大大!!!!!!数据结构题。太大了:法一:线段树动态开点:注意n有1e8于是考虑m影响的。法二:两个SPLAY:目的是在n有1e8时一棵维护名次,一棵维护编号。目的是解决n原理:修改k:则剖成(1,k-1)(k,k)(k+1,n);最多复杂度:logn*m;法三::一个SPLAY,另外一个用map就可以了。用一个in记录是否到了前端与后缀。#include<iostream>#...原创 2018-02-26 22:14:23 · 323 阅读 · 0 评论 -
省选专练[SCOI2014]方伯伯的玉米田
LIS变种。那么怎么变种。f(i,j)前i个变j次.最大的lis值。转移:f(x,y)=max:sigma(f(i,j)a[i]+j<f[x]+f[y])好了:既然如此时间复杂度为:n^2k显然不行。这时候观察发现:j单调a[i]+j自然单调,于是形成区间。那么就简单了。还记得CDOJ的DP专练大赛吗?柱爷抢银行。线段树维护区间最大值。但是!这个更难。二位BIT维护区间最大值:复杂度:n*k...原创 2018-02-26 22:07:12 · 193 阅读 · 0 评论 -
三分学习笔记 [SCOI2010]传送带
在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在lxhgww想从A点走到D点,他想知道最少需要走多长时间终于敢说我会三分了本题是三分套三分的经典例题分别在两个线段上三分就好了注意精度(不要被炸成-nan)#include<bits/stdc++.h...原创 2018-10-23 07:43:55 · 237 阅读 · 0 评论