【CF】38E Let's Go Rolling! (dp)】的更多相关文章

前言 这题还是有点意思的. 题意: 给你 \(n\) (\(n<=3000\)) 个弹珠,它们位于数轴上.给你弹珠的坐标 \(x_i\) 在弹珠 \(i\) 上面花费 \(C_i\) 的钱 可以使弹珠在原地不动 (\(-10^9<=x_i,C_i<=10^9\)),游戏开始时,所有的弹珠向左滚动,直到碰到定在原地不动的弹珠,其花费是其滚动的距离.总花费=开始前的花费+弹珠滚动的花费,问最小的花费是多少 题解 首先划分出阶段,,我们可以先将弹珠排序,前 \(i\) 个弹珠,最后一个固定的弹…
E. Let's Go Rolling! time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output On a number axis directed from the left rightwards, n marbles with coordinates x1, x2, ..., xn are situated. Let's assu…
http://www.lydsy.com/JudgeOnline/problem.php?id=1600 说好的今天开始刷水.. 本题一开始我以为是排列组合,但是自己弱想不出来,只想到了如果四边有一条边大于或等于第三边,那么这个四边形构造不出来. 即 a>=b+c+d时,不存在四边形 那么存在的情况就是a<b+c+d 得到 a<a+b+c+d 因为a<2a,a<b+c+d 所以a<(a+b+c+d)/2=n/2 那么我们就可以dp了. 只要找所有满足的边满足比长度的一半…
题目 传送门:QWQ 分析 发现我们关心的不是棋子的位置,我们只关心棋子数量就ok. 首先每行每列最多两个棋子.这是显然的. 然后我觉得本题最难的部分就是对行进行讨论,蒟蒻我一直被限制在了对格点讨论.... $dp[i][j][k] $放了前$i$行,有$j$列有1个棋子,有$k$列有2个棋子.转移就很显然了. 代码 #include <bits/stdc++.h> typedef long long ll; ;; ll dp[maxn][maxn][maxn]; //dp[i][j][k]…
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4140 约瑟夫问题.... 考虑0-n-1编号出第m个 即((m%n)-1+n)%n 形象地说就是 0, 1, ..., m-1, m, m+1, ..., n-1 即出列m-1 那么我们出列m-1后,还有 0, 1, ..., m-2, m, m+1, ..., n-1 序列全都减去m,重新…
http://www.lydsy.com/JudgeOnline/problem.php?id=2021 噗,自己太弱想不到. 原来是2次背包. 由于只要有一个大于k的高度的,而且这个必须放在最顶,那么我们就可以枚举每一个比k大的放在最顶,其它的都放在下边即可. 还有,注意这是完全背包! #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <i…
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2423 题目大意:求两个字符串的最长公共子序列长度和最长公共子序列个数. 这道题的话,对于神犇来说,肯定是一眼看出状态转移方程的.而我这个蒟蒻,看了几篇博客之后才看懂... 第一问模板lcs,大家肯定都会,就是设f[i][j]为A串跑到第i位,B串跑到第j为时的最长公共子序列长度,然后就有: f[i][j]=f[i-1][j-1]+1 (a[i]==b[j])  =max(f[i-1][…
[CF908G]New Year and Original Order(动态规划) 题面 洛谷 CF 题解 设\(f[i][j][k][0/1]\)表示当前填到了第\(i\)位,有\(j\)个大于等于\(k\)的数,是否卡到上界的方案数. 这个东西算完之后,等价于默认排好序了. 看起来可以枚举每个数字出现在第几位了. 然而实际上不知道这个数字的出现次数,所以不能按照\(10^j*k\)这样子计算贡献. 怎么办呢,假设前面有\(j\)个数大于\(k\)的数,那么就产生\(\sum_{i=0}^{j…
[CF1097F]Alex and a TV Show(bitset) 题面 洛谷 CF 题解 首先模\(2\)意义下用\(bitset\)很明显了. 那么问题在于怎么处理那个\(gcd\)操作. 然后就莫比乌斯反演一下:\(f[n]=\sum\limits_{n|d}g[d],g[n]=\sum\limits_{n|d}\mu(\frac{d}{n})f[d]\),发现这样子搞完之后,如果要处理集合\(g\)的\(gcd\)操作,就是把\(g\)变成\(f\)之后再按位乘起来(二进制意义下的按…
最近画UML画画,于UML观看视频后还没有学会.它是的结果UML九图是不是太懂,我想加深绘制过程的理解,我一个新的水平. 现在我觉得是时候..地介绍一下UML.了解一下它的基本内容.达到深入浅出的效果. 什么是UML 1.可视化的面向对象建模语言 2.描写叙述系统的静态结构和动态行为 3.用图形表现系统的总体结构 4.不同角度为系统建模.形成不同视图 UML的作用 在之前.我已经学过关于软件project的博客.通过软件project开发软件.会产生各种各样的文档.为软件的开发做好充分的指导资料…