上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 24 下一页
摘要: 859C - Pie Rules 思路: dp 我们知道无论谁拿到decider token他拿不拿蛋糕都是确定的,都是使自己最优的结果。 于是 定义状态:dp[i]表示到第i个位置拿到decider token的人能使自己拿到的最大的值 初始状态:dp[n]=a[n] 目标状态:dp[1] 状态转 阅读全文
posted @ 2018-02-01 21:13 Wisdom+.+ 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 919E - Congruence Equation 思路: 费马小定理。 n*a^n = b (mod p) 根据费马小定理 a^(p-1) = 1 (mod p) 我们把n化为 n=i+y(p-1) 于是[i+y(p-1)]*a^ [i+y(p-1)] = b (mod p) 再根据费马小定理a 阅读全文
posted @ 2018-02-01 16:31 Wisdom+.+ 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 919D - Substring 思路: 拓扑排序判环+DAG上dp+记忆化搜索 状态:dp[i][j]表示以i为起点的路径中j的最大出现次数 初始状态:dp[i][j]=1(i have no son && w[i]==j) dp[i][j]=0(i have no son && w[i]!=j) 阅读全文
posted @ 2018-02-01 15:20 Wisdom+.+ 阅读(483) 评论(0) 推荐(0) 编辑
摘要: URAL 1513 思路: dp+高精度 状态:dp[i][j]表示长度为i末尾连续j个L的方案数 初始状态:dp[0][0]=1 状态转移:dp[i][j]=dp[i-1][j-1](0<=j<=k) dp[i][0]=∑dp[i-1][j](0<=j<=k) 目标状态:dp[n+1][0] 观察 阅读全文
posted @ 2018-01-31 20:25 Wisdom+.+ 阅读(173) 评论(0) 推荐(0) 编辑
摘要: URAL 1287 思路:dp水题,四个方向转移,题目卡了内存,应该只能这么写。 代码: 阅读全文
posted @ 2018-01-31 13:44 Wisdom+.+ 阅读(187) 评论(0) 推荐(0) 编辑
摘要: URAL 1501 思路: dp+记忆化搜索 状态:dp[i][j]表示选取第一堆前i个和第二堆前j的状态:0:0多1个 1:0和1相等 2:1多一个 -2:不能达到题目所描述的状态 初始状态:dp[0][0]=1 状态转移:见代码 代码: 阅读全文
posted @ 2018-01-31 11:29 Wisdom+.+ 阅读(258) 评论(0) 推荐(0) 编辑
摘要: URAL 1018 思路: 树形dp+记忆化搜索 先把边的权值转移到节点上 状态:dp[i][j]表示以i为根节点的子树中选取j个节点保留(包括自身)的最大苹果数 目标状态:dp[1][q+1] 初始状态:dp[i][0]=0(1<=i<=n) dp[i][m]=w[i](i is a leaf, 阅读全文
posted @ 2018-01-31 10:32 Wisdom+.+ 阅读(157) 评论(0) 推荐(0) 编辑
摘要: URAL 1029 思路: dp+记录路径 状态:dp[i][j]表示到(i,j)这个位置为止的最少花费 初始状态:dp[1][i]=a[1][i](1<=i<=m) 状态转移:dp[i][j]=a[i][j]+max(dp[i-1][j],dp[i][j-1],dp[i][j+1])(注意扫的方向 阅读全文
posted @ 2018-01-31 09:29 Wisdom+.+ 阅读(167) 评论(0) 推荐(0) 编辑
摘要: URAL 1039 思路: 树形dp 状态:dp[i][0]表示以i为根节点的子树不选取i的最大贡献 dp[i][1]表示以i为根节点的子树选取i的最大贡献 初始状态:dp[i][0]=0(if i is a leaf) dp[i][1]=a[i](if i is a leaf) 状态转移: dp[ 阅读全文
posted @ 2018-01-31 09:05 Wisdom+.+ 阅读(173) 评论(0) 推荐(0) 编辑
摘要: URAL 1078 思路: dp+记忆化搜索 状态:dp[i]表示第i个线段最多包含多少个线段(包括自身) 状态转移:dp[i]=max(dp[i],1+dp[j])线段j包含于i 记录路径,递归输出路径 代码: 阅读全文
posted @ 2018-01-30 23:26 Wisdom+.+ 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 918D - MADMAX 思路: dp+记忆化搜索 状态:dp[i][j][w]表示先手在i节点,后手在j节点,这一轮的字母为w的结果,如果为true,则表示先手必赢,否则后手必赢。 状态转移:如果i连的一条边的权值tw>=w,连向t,那么这个博弈的结果可以由dp[j][t][tw]决定,如果dp 阅读全文
posted @ 2018-01-30 22:51 Wisdom+.+ 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 918C - The Monster 思路1: 右键在新窗口打开图片 代码: 思路2: 结论: 证明见codeforces.com/blog/entry/57420 代码: 阅读全文
posted @ 2018-01-30 20:28 Wisdom+.+ 阅读(294) 评论(0) 推荐(0) 编辑
摘要: URAL 1495 思路: 折半枚举+高精度技巧。 先dfs枚举出小于等于15位的情况。 dp[i]表示余数为i的最小的数。 _dp[i]表示余数为i正好15的数。 然后枚举余数i,把它乘以1e15再模n后得到t,然后找_dp[n-t] 代码: 阅读全文
posted @ 2018-01-29 19:08 Wisdom+.+ 阅读(182) 评论(0) 推荐(0) 编辑
摘要: URAL 1244 思路:dp,有点类似背包,不过不需要求最大价值,只要求方案数就可以了。 状态:dp[i]表示和为i的方案数 初始状态:dp[0]=1 状态转移:dp[i]=∑dp[i-a[k]] (1<=k<=n) 用一个pre[]数组来记录路径 代码: 阅读全文
posted @ 2018-01-29 17:56 Wisdom+.+ 阅读(230) 评论(0) 推荐(0) 编辑
摘要: URAL 1658 思路: dp+记录路径 状态:dp[i][j]表示s1为i,s2为j的最小位数 初始状态:dp[0][0]=0 状态转移:dp[i][j]=min(dp[i-k][j-k*k]+1,dp[i][j])(0<=k<10) 在状态转移时用一个数组v[i][j]记录选的k 代码: 阅读全文
posted @ 2018-01-29 14:47 Wisdom+.+ 阅读(198) 评论(0) 推荐(0) 编辑
摘要: URAL 1081 思路 状态:dp[i]表示长度为i的方案数 初始状态:dp[0]=1,dp[1]=2 状态转移:dp[i]=dp[i-1]+dp[i-2],在长度为i-1的串的前面加0,在长度为i-2的串前面加10 对于第i位如果k大于dp[i-1],那么说明这一位时1(k减去dp[i-1]), 阅读全文
posted @ 2018-01-29 14:16 Wisdom+.+ 阅读(174) 评论(0) 推荐(0) 编辑
摘要: URAL 1303 思路: dp+贪心,然后记录路径 mx[i]表示从i开始最大可以到的位置 sufmx[i]表从1-i的某个位置开始最大可以到达的位置 比普通的贪心效率要高很多 代码: 阅读全文
posted @ 2018-01-29 12:55 Wisdom+.+ 阅读(164) 评论(0) 推荐(0) 编辑
摘要: URAL 1183 思路:区间dp,打印路径,详见http://www.cnblogs.com/widsom/p/8321670.html 代码: 阅读全文
posted @ 2018-01-29 10:17 Wisdom+.+ 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 454D - Little Pony and Harmony Chest 思路: 状压dp,由于1的时候肯定满足题意,而ai最大是30,所以只要大于等于59都可以用1替换,所以答案在1到59之间 然后筛出1到58之间的质数,只有16个,把1到58的数的状态由这16个质数表示,如果整除这个质数则二进制 阅读全文
posted @ 2018-01-28 22:28 Wisdom+.+ 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 454C - Little Pony and Expected Maximum 思路: m面的骰子掷n次,总共有m^n种情况,如果一种情况的最大值是m,那么它肯定包含m,那我们在所有情况下挖掉不包含m的情况:(m-1)^n,所以最大值是m的情况数是m^n-(m-1)^n,同理可得最大值是m-1的情况 阅读全文
posted @ 2018-01-28 22:09 Wisdom+.+ 阅读(135) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 24 下一页