自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xuelanghu407

ACM蒟蒻de脑残之旅

  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 uva 1291 dp

UVA 1291 - Dance Dance Revolution 有一个跳舞机。原点为0,有四个方向,上左下右,分别标成(1234),初始玩家两只脚站在 0 位置,跳舞机会给出一串数字,玩家要按照顺序踩下四个方向的数字。移动脚会消耗玩家的能量,从0位置移动到四个方向消耗2点能量,从一个方向移动到另一个相邻的方向消耗3点能量,从一个方向移动到相反方向消耗4点能量,原点踩一下消耗1点能量。

2015-08-25 23:29:49 634

原创 Suffix Array 后缀数组

后缀数组 顾名思义,SuffixArray(以下有时简称SA) 和字符串的后缀有关。 后缀:字符串中某个位置一直到结尾的子串。(SA中讨论包括了原串和空串),所以共有len+1个后缀。 后缀数组: 字符串的所有后缀组成的按字典序从小到大排好的数组。由于SA中记录的都是字符串的后缀,所以SA只需要记录其表示的后缀的起始位置。 由于比较字典序是O(n)的,所以暴力算法的复杂度将

2015-08-25 00:19:43 3132 7

原创 uva 1351 区间dp

UVA 1351 - String Compression 问一个字符串经过压缩后最短可以到多短。压缩规则是如果有连续的重复子串(如:abcabcabcad)可以压缩成重复次数 + ( 重复子串) (前面例子的答案: 3(abc)ad )。压缩后的串长度要把数字和括号计算在内。 区间dp,dp存该区间能压缩的最小长度。 对于每个区间可以被分成两个子区间,或者该区间可以压缩

2015-08-24 23:12:33 593

原创 uva 1292 树形dp

UVA 1292 - Strategic game 守卫城市,城市由n个点和n-1条边组成的树,要求在点上安排士兵,守卫与点相连的边。问最少要安排多少士兵。 典型的树形dp。 每个点有两个状态: dp[t][i]表示t节点在i状态下其所在的子树全部的边都被守卫的最少士兵数量。有士兵守卫和没有士兵守卫。如果有士兵守卫,其子节点的状态任意。如果没有士兵,子节点必须全部都有士兵守卫。

2015-08-24 22:58:58 597

原创 uva 10817 状压dp

UVA 10817 - Headmaster's Headache 学校要安排s个课程的教师,每个课程至少有两门老师任课,已知学校现有现有的n位老师的工资和任课情况,和m为前来应聘的老师的薪资和任课情况,求出安排全部课程的最少薪资花费。不得开除现有老师。 状压dp dp[i][s] 表示前i位老师在课程安排为s的情况下的最小花费。s存放所有课程的安排情况。是个三进制数,每位的

2015-08-23 01:13:28 846

原创 uva 1452 dp 约瑟夫环

UVA 1452 - Jump 约瑟夫环。对于一个n个人,没k个踢出去的约瑟夫环。踢出一个人后,环成了 0, 1, 2, ... ,k-2, k, k+1, ... ,n 对其从k为起点重新编号  n-k+1, n-k+2, ... ,n-1, 0, 1, 2, ...n-k 这样变成了一个(n-1, k)的约瑟夫环问题。 于是得到转移方程

2015-08-16 21:25:27 512

原创 uva 11795 状压dp

UVA 11795 - Mega Man's Mission Mega 要去解决n个机器人,每解决一个机器人可获得若干把武器。每个机器人只能被特定的武器解决。给出Mega 现有的武器,和解决i号机器人可以获得的武器,求Mega 完成任务的方案数。 状压dp 枚举当前已经解决的机器人状态s,根据s 我们可以得到Mega 现有武器状态k ,通过k 我们可以得出状态 s 再解决一个机器人后

2015-08-16 21:21:24 388

原创 uva 1456 dp 求期望

UVA 1456 - Cellular Network 大致意思可以理解为有n个盒子,盒子里面放球的概率为p[i],把这n个盒子分成k组,按顺序打开每组的盒子。求打开盒子找到球的需要拆盒子数的期望。 按概率从大道小排序,贪心选择概率大的盒子先拆,然后维护概率的前缀和。 dp[i][j]表示前i个盒子被分成j组的找到小球的期望。 dp[i][j] = min{dp[k][

2015-08-16 21:19:26 406

原创 uva 11404 dp

UVA 11404 - Palindromic Subsequence 求给定字符串的最长回文子序列,长度一样的输出字典序最小的。 对于 [l, r] 区间的最长回文串,他可能是[l+1, r] 和[l, r-1]两个区间的结果。或者当s[l] == s[r]时,区间[l+1, r-1]的结果再加上以s[l], s[r]为首尾的子序列。 dp[l][r]

2015-08-16 21:16:03 525

原创 uva 11552 dp

UVA 11552 - Fewest Flops一个字符串,字符串每 k 个当作一组,组中的字符顺序可以重组。问经过重组后改字符串可以编程最少由多少块字符组成。连续的一段字符被称为块。dp[i][j] 表式第i组以字符j结尾的最少块数。 那么我们考虑添加一组后可以减少块数的情况。 1):上一组的结尾在这一组里找得到同样的字符,并且该字符不作为当前块的结尾。如果要作为结尾的话要把该字符所在的块拆开

2015-08-16 00:31:52 634

原创 uva 10534 dp

UVA 10534 - Wavio Sequence定义一种 Wavio 的序列。其长度为2*n+1,前n+1严格递增,后n+1个严格递减。 求在给的序列中找一个最长的 Wavio 子序列。输出长度。正向LIS求出每个点以该点为结尾的最长上升子序列长度p[i],然后反向LIS求出以该点位开头的最长递减子序列长度q[i]。然后枚举 Wavio 子序列的中点,该店的 Wavio 长度为 2 * min

2015-08-16 00:29:51 617

原创 uva 1424 dp

UVA 1424 - Salesmen给出一副图,并且给出nhn走过的路径记入,路径可能是错的,问最少修改几个地方可以使得路径是正确的。dp[i][j] 表示修改第i个位置为j点的前i个位置的最小修改次数。 dp[i][j] = min(dp[i-1][k] + (j == a[i])); {w[k][j] == true 即存在路径k~j}然后再最后一个点找一个最小值。#include <cst

2015-08-16 00:28:15 605

原创 UVA 11584 dp

UVA 11584 - Partitioning by Palindromes求一个字符串最少可以被分为几个回文字串。如aaadbccb 可以被分为aaa d bccb 三个。n^2预处理出w[i][j],即i到j段是否为回文。为回文的条件为s[i] == s[j] 并且w[i+1][j-1]为回文。如此,我们以位子i为状态,dp[i]表示在i之前的字符最少可以被分为多个子回文串。dp[i] = m

2015-08-16 00:26:20 632

原创 hdu 5378 概率dp 逆元

一棵n个节点的树。对其节点进行标号(1~n)。求恰好存在k个节点的标号是其节点所在子树的最大值的方案数。 首先,总共有n!中标号方案。而如果求出n个节点中出现k个上述节点的概率p。方案数等于n!* p。 dp[i][j] 表示钱i个节点有j个上述节点的概率。转移较容易推出。 dp[i][j] = dp[i-1][j] * (c[i]-1) / c[i] + dp[i-1][j-1]

2015-08-14 00:13:17 1055 2

原创 hdu 3480 dp 四边形不等式优化

给出一个数字集合 S,大小为 n,要求把这个集合分成m个子集,每分出一个子集的费用是子集中的 (max-min)^2,求最小费用。 开始的dp转移很容易想到。 首先对集合从小到大排序,dp[i][j] 表示前i个元素被分成j个子集的最小费用。然后枚举最后一个子集。 dp[i][j] = min{dp[k-1][j-1] + cost(k, i)};

2015-08-08 23:50:17 958

原创 Codeforces Round #Pi (Div. 2) ABCD

http://codeforces.com/contest/567/problem/A 一个岛上有n个城市,城市排成一排,两两城市之间通信的花费为两城市间的距离,给出所有城市的坐标,求出所有城市的最小通信费用和最大通信费用。 sort一下,特判头尾,剩下的无脑乱搞 min(a[i]-a[i-1], a[i+1]-a[i]), max(a[n-1]-a[i], a[i]-a[0]);http:/

2015-08-07 23:18:01 469

原创 zoj 3329 概率dp 环

一个游戏,你手上有三个骰子,分别有k1, k2, k3面。每次投出这三个骰子,得到三个面x, y, z。并且你有一个计数器,如果投出a, b, c, 则计数器归零,否则计数器加上三面之和,计数器初始为零。如果计数器的值大于 n 则游戏胜利。求胜利所需投骰子次数的期望。 以计数器的值为状态,dp[i] 表述计数器的值为i的情况下投骰子的期望。得到转移方程 p[k] 表示投出点数总和为k的概率,k=

2015-08-02 15:49:27 584 2

原创 zoj 3822 概率dp

Edward 喜欢下棋,每天下班他会把一个棋子放到棋盘中空闲的位置,有一天他发现棋盘 was dominated by the chess pieces,意思就是每一行,每一列都至少有一个棋子在上面。Edward 觉得很有趣,他想知道在一个N*M的棋盘中摆成这样的情况需要的天数的期望是多少。 14年牡丹江现场赛的题目。现在看来也不算是特别难了吧?题目主要卡手的地方我觉得在于棋子只能放在空闲的地方。

2015-08-01 21:22:13 695

sublime Text 3 (x64)

sublime 一款优美的编辑器。鄙人主要用于写C++,据说用它写HTML也·挺不错的。就是这样。资源为官网下载。未进行任何修改。(我没那技术。支持正版,反对侵权。)

2014-12-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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