Mys_C_K的博客

吾自撷高山之月色,独随足落处往行。

[SCOI2007] BZOJ 1072 排列perm - 状压dp

传送门 题解:dp数组记录当前数字和%d以及用了哪些数字 #include #include #include #define N 11 #define D 1010 using namespace std; int fac[10],b[10];char s[N]; int dp[1<&...

2017-08-26 19:52:46

阅读数:177

评论数:0

BZOJ 1688 Disease Manangement 疾病管理 -状压dp

传送门 题解:傻逼题 #include #include #include #include #include #define inf (INT_MIN/2) #define N 1010 #define D 16 using namespace std; inline int get...

2017-08-26 19:50:07

阅读数:297

评论数:0

BZOJ 1231 mixup2 混乱的奶牛 - 状压dp

传送门 题解:傻逼题 #include #include #include #include #define lint long long #define N 17 using namespace std; int n,all,a[N]; lint dp[1<<N][N]; inl...

2017-08-26 19:48:10

阅读数:187

评论数:0

BZOJ1725 Corn Fields牧场的安排 - 状压dp

传送门 题解:傻逼题 #include #include #include #include #define N 13 #define MAXT 380 #define mod 100000000 using namespace std; inline int updv(int &...

2017-08-26 19:44:43

阅读数:161

评论数:0

[SCOI2005] BZOJ 1087 互不侵犯King - 状压dp

传送门 题解: 首先求出哪些行的状态是合法的,即没有相邻的棋子。 发现合法的行状态数量只有90,没有2^9=512这么多。 然后枚举相邻两行,预处理能否转移。 然后记q[i]表示第i种合法的行方案是q[i],cnt[i]表示q[i]放了多少个棋子 然后记dp[i][j][k]表示前i行第i行状态为...

2017-08-26 19:41:32

阅读数:174

评论数:0

2017-08-07 NOIP模拟赛

T1. 定义F(x)=各位数字的阶乘之积,给定a 题解:沙茶题。每一位数字分开考虑然后打表即可。 T2. 给一个n*m的字符矩阵(n,m 题解:沙茶题,保存当前这一行是否和上一行相等;如果相等并且上一和的这一列的字符大就删除,否则更新这个数组。 复杂度O(nm)。 T3....

2017-08-07 14:28:59

阅读数:209

评论数:0

2017-08-06 NOIP模拟赛

持续沙茶 T1:一个1~n的排列,每次可以把序列中的某个数字拿到序列首端,求变成1~n的最小步数 n 题解:不难想到贪心的方法:找到第一个i满足i的位置在i+1的位置后面,然后i就是答案。 正确性显然 T2:n个题,做第i到题的时间为ti,初始得分ai,每分钟会少得bi分。 保...

2017-08-06 13:59:33

阅读数:254

评论数:0

[HNOI2008] 水平可见直线 - 单调栈

传送门 题解:沙茶题 #include #include #include #include #define N 50010 using namespace std; int s[N],ans[N]; struct Line{ int k,b,id; Line operator...

2017-08-05 15:07:56

阅读数:244

评论数:3

vijos 1421 更换轮胎 - 前缀和优化dp

传送门 题解:和上一个题一样 强迫症晚期必须做到O(n)空间 代码: //vijos 1421 #include #include #include #include #include #define INF (LLONG_MAX/2) #define N 1010 #define lin...

2017-08-04 21:32:53

阅读数:240

评论数:0

vijos 1283 佳佳的魔杖 - 前缀和优化dp

传送门 题解: 不知道他们怎么看出是LCS的。 首先考虑转化成图,选了[l,r]就不能选择[s,t],l 所以可以用网络流做最小割,也可以在这张无环图上做dp,但是边数是O(n^4)的。 发现如果左端点相同至多只会选择一根。 考虑dp,记dp[l][r]表示选了[l,r]选了左端点最靠左的区间为[...

2017-08-04 21:11:00

阅读数:244

评论数:0

vijos 1471 教主的游乐场 - 线段树优化dp

传送门 题解:首先这个题可以n遍bfs。 然后发现dp只记录一维状态不够,因为可能有环,不满足dp性质。 解决方案有如下两种: 1.于是找性质,发现非常有意思的一点是每个点可以向前跳到任何一个点。 考虑一条最优解路径,如果先向右跳了一步,然后又向左跳了一步,那么不如直接向右/左跳一步。 ...

2017-08-04 19:53:05

阅读数:340

评论数:1

vijos 1417 魔法塔防 - DP

传送门 题解:显然红塔放在最后。 dp[i][j]表示前i座塔放了几个绿塔,剩下的放红塔。 这样是O(n^2)的。 此题显然可以做到O(gb+n)的复杂度。 可以通过形如n 发现可以优化空间。 //vijos 1411 #include #include #include #incl...

2017-08-03 20:14:46

阅读数:176

评论数:0

tyvj 1087 拆分 - 递推

传送门 题解:O(nlgn)DP显然。100%做法需要递推。 考虑如果n是奇数那么显然拆分方案中必然有至少一个1. 因此此时方案数等于n-1的方案数。 否则如果n为偶数,分两种情况考虑。 第一种,拆分方案中有1,这个和上面的一样。 第二种,没有1.全部都是2.那么整体除以2,方案等...

2017-08-03 19:15:29

阅读数:202

评论数:0

BZOJ3398 牡牛和牝牛 - 动态规划

传送门 题解:沙茶题。前缀和维护一下。 这题显然可以再O(k+lgn)的时间内出解。 代码: #include #include #include #define mod 5000011 #define N 100010 using namespace std; int dp[N],s[N...

2017-08-02 20:49:06

阅读数:290

评论数:0

BZOJ2435 守卫者的挑战 - 期望dp

传送门 题解: 考虑dp。dp[i][j][k]表示当前第i场,已经赢了j场,背包容量为k(可能为负)的概率。 转移显然。可以用n+1表示背包容量无穷大(因为显然碎片最多n个,容量太大就变成无穷大了)。 代码: #include //BZOJ 3029 #include #inclu...

2017-08-02 20:42:41

阅读数:206

评论数:0

[学习笔记]BZOJ3224 普通平衡树 - 平衡树Splay

传送门 rotate和splay跳过 insert就是insert,不要忘了splay。 find写成找第一个>=v的。 前驱后继就是find后先往左右跳一步然后能往右左走就走 del就是find后把前驱后继splay的根和根的右儿子删除即可。 getk就是find后spla...

2017-08-02 20:35:18

阅读数:236

评论数:1

[学习笔记][HEOI2013]BZOJ3165 Segment - 超哥线段树

传送门 题解:超哥线段树 先考虑直线L。 首先,假设当前线段树上区间的直线是L2,如果L完全在L2的上面或者L2完全在L的上面 那么把其中一个舍弃,递归结束。 否则求一下两直线交点。为了方便起见,把左端点比较小的记作L1,另一条记作L2。 求一下两条直线的交点。如果它小于等于mid,说...

2017-08-02 20:27:46

阅读数:531

评论数:0

BZOJ1409 Password - 矩阵乘法 - 快速幂 - 欧拉定理

传送门 题解:由于pq互质所以要求f[n]mod phi(q)。然后f[n]用矩乘计算即可。然后快速幂即可。 及说此题卡常需要先预处理出一些质数。 #include #include #include #define MAXV 5 #define MAXP 1000000 #define lint...

2017-08-02 20:15:57

阅读数:256

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭