CDOJ
yuukilp
Full Of Curiosity
展开
-
cdoj 母仪天下(线段树)
#include#includeconst int NN=100005;int rom[NN]={0};int sum;//建立节点typedef struct node{ int left,right,data; node *l_child,*r_child; node () { left=right=data=0; }}原创 2014-05-03 23:21:00 · 913 阅读 · 0 评论 -
CDOJ 1346(斜率DP)
题意&思路: 题意:把大的区间分段,每一段的有一个花费,求总的最小花费。 这种分段的花费的题,貌似成了斜率dp的一眼题了,上次CF的E题比赛的时候,实力套路一波斜率dp的推导过程,感觉还不错,还学习了下二维的斜率优化。 首先,你假设就按二维来做,然后看是否满足能够去斜率优化,写出二维的转移就是: Dp[i][j]Dp[i][j] : 区间 [1,i][1,i] 分为 j原创 2016-05-15 23:34:09 · 436 阅读 · 0 评论 -
CDOJ 1351(树形DP)
题意&思路: 题意:带权边树上,在起点0出发,初始值为VV,求最多能访问的节点数目? 如果数据小一点,我们可以考虑 dp[u][i]dp[u][i],表示u节点及其子树花费i最多能够访问的节点数,这个是很好做的,树上背包嘛。 但是题目多询问,于是考虑 dp[u][i][o]dp[u][i][o] ,表示当前节点u及其子树,访问了 ii 个节点,并且是否停留在u点的最小花费。原创 2016-05-15 23:27:23 · 343 阅读 · 0 评论 -
CDOJ 1314 Hash Perfectly
题意: 给定 nn 个数字,和一个hash表的最大长度,求一个最佳的hash表的长度,使得平均查找长度(ASL)最小,ASL=1n∑ni=1ciASL=\frac{1}{n}\sum_{i=1}^{n}c_i思路: FFT + 思维题,很好很好的题,可惜我不完全不会做! 这道题需要转几个弯! 1.平均查找长度的转换? 我们直接去求那个式子,是不太好搞的,所以转化一下为:原创 2016-04-19 00:28:11 · 411 阅读 · 0 评论 -
UESTC 879 (斜率DP)
转载自 xiper题意: 链接:这里解释: 作为斜率DP的入门题,学习了下! 这是一道斜率优化DP的题目.我们令 f(i,j)f ( i , j ) 表示将前 ii 个人分成 jj 份所需的最小费用.F(i,j)F ( i , j ) = min{F(u,j−1)+(sum[i]–sum[u+1])2}min \{ F ( u , j -1) + (sum[i] – sum[ u原创 2016-01-28 23:56:43 · 403 阅读 · 0 评论 -
Sichuan State Programming Contest 2012 Binary Operations
题意:给定数组,求连续子串的原创 2014-11-20 14:50:24 · 665 阅读 · 0 评论 -
Sichuan State Programming Contest 2012 Journey
题意:给一棵树,原创 2014-11-18 22:49:01 · 722 阅读 · 0 评论 -
CDOJ 解救小Q
#include#includestruct point{ int x,y;};struct point gate[26][2],que[2505];char box[55][55];int vis[55][55],cost[55][55];int dx[4]={-1,0,1,0};int dy[4]={0,-1,0,1};int n,m;bool is_not(i原创 2014-05-17 16:33:17 · 1083 阅读 · 0 评论 -
CDOJ 分割包围
不太容易想通,可以模拟一下,慢慢就明白呢原创 2014-05-17 16:42:36 · 666 阅读 · 0 评论 -
CDOJ 方老师与迷宫
二维变三维了。#include#includetypedef struct point{ int x,y,z;}point;point in,out,que[30000];int L,R,C;int dx[]={0,0,0,0,-1,1};int dy[]={0,0,-1,1,0,0};int dz[]={-1,1,0,0,0,0};char box[31][3原创 2014-05-17 16:39:02 · 631 阅读 · 0 评论 -
CDOJ 方老师开橙卡
bfs好像不太容易AC,尝试了原创 2014-05-17 16:35:53 · 819 阅读 · 0 评论 -
cdoj island(并查集)
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 1000005#define原创 2014-05-04 23:16:21 · 633 阅读 · 0 评论 -
cdoj 方师傅与01串(二叉树)
#include#include#includetypedef struct Trie{ int cur; int deepth; Trie *next[2]; Trie() { cur=0; deepth=0; }}Trie;Trie *root;int ans=0;int maxn原创 2014-05-04 23:20:09 · 848 阅读 · 0 评论 -
cdoj 长使英雄泪满襟(线段树)
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;int Y[200005];int n,w,h;st原创 2014-05-04 23:19:31 · 761 阅读 · 0 评论 -
CDOJ 1136(数位DP)
题意&思路: 题意:求区间[1,n] 内满足i < j, 并且f(i) > f(j) 的数对数目? 学习了一波数位dp的一般写法,很爽。。。。 首先把原数字转化为二进制数,然后考虑dp[pos][diff][f1][f2][f3] 表示对于状态下的答案: Pos:当前处于第pos位 Diff:f(i) - f(j)的值 F1: i与n的大小关系,1表示小于原创 2016-05-15 23:22:02 · 441 阅读 · 0 评论