自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

以中有足乐者...

且行且歌, 享受过程.

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

原创 【Ada语言学习笔记】参考手册中文翻译及注记——语言概述

我们在Concurrent & Distributed Systems课的实验中需要用到Ada语言。通俗而笼统地讲,Ada语言是一种描述特别详尽的语言(highly specific),因此它的特点是在编译阶段和运行时能够进行大量的检查,能够更加精确地定位错误的位置和类型(因为语言本身详尽了,你提供的信息量越大,编译器能够做的就更多)。这里是Ada的参考手册本篇翻译

2015-08-09 10:56:24 4443

原创 VHDL细节笔记(含std_logic Libraries标准库的技术手册)

q '0'); 表示将q的所有位赋值为0,当q位数较多时比较方便。。。信号属性函数:用来得到有关信号的行为功能信息;信号‘event:当前的一个相当小的时间间隔内有信号事件发生,则返回’true’,否则返回‘false’;关于conv_std_logic_vector 和 conv_integer 这两个函数的使用问题

2014-06-08 21:13:08 5857

转载 啥是testbench

你买了个黑古隆冬的东西, 有几个引脚. 人家说那叫芯片, 是USB转UART芯片. 你可以往FPGA/CPLD里写程序,让他跟那个转换芯片一样的逻辑去工作, 这里的程序就是你所谓的VHDL程序. 可写好了, 谁知道是是正宗是水货还是山寨啊, 总得测试鉴定一下吧. 于是你又用C语言写了个上位机程序, 往USB发,用UART收, 调USB1.0/1.1/2.0, 调UART速率2400/9

2014-06-07 15:15:59 3263

转载 敏感信号表(有改动)

进程语句中有一个敏感信号表,这是进程赖以启动的敏感表。对十表中列出的任何信号的改变,都将启动进程,执行进程内相应顺序语句。进程有组合进程和时序进程两种类型,组合进程只产生组合电路,时序进程产生时序和相配合的组合电路,这两种类型的进程设计必须密切注息VHDL语句应用的特殊方ICI,这在多进程的状态机的设计中,各进程有明确分土。设计中,需要特别注息的是,组合进程中所有输入信号,包括赋值符号右边的所

2014-06-07 13:52:25 6222 1

原创 [hoj 2507]The Bug Sensor Problem[第k长路]

题意:给出一些点的坐标, 求这些点之间的第k长边.本来的描述是, 一些点, 有效距离之内可以传送数据, 有效距离也表示耗电量. 可以放k个收发器, 收发器的有效距离无穷大. 所有点的耗电量设为相同, 问此时单点耗电量最小是多少.思路:先求最小生成树, 放k个传感器的话, 可以省去k-1条边(就是直接发走而不需要走这条边), 那么求出第k长边即可.特殊的,未加

2013-11-11 21:15:10 1345

原创 [poj 3321]Apple Tree[树状数组]

题意:树杈上长苹果,统计苹果数.思路:将树通过dfs映射到线性序列, 用树状数组计数.#include #include #include using namespace std;const int MAXN = 100010;int n,m;int head[MAXN],num;struct pool{ int v,next;}g[MAXN];

2013-10-23 20:40:44 1215

原创 [HDU 4089]Activation[概率DP]

概率DP.找不到思路的主要原因是不清楚dp数组到底用来表示什么. 进而无法合适地分析状态转移.概率DP是将从当前状态到最终状态一系列多重的选择"封装", 表示为一个最终结果, 然后根据题意的转移方式, 严格分离等号左右两边(常有自我循环, 若是不刻意分别对待容易混乱). 式子列好之后再考虑怎么解.

2013-10-13 17:25:27 1648

原创 [CF 351B]Jeff and Furik[归并排序求逆序数]

题意:两人游戏, J先走.给出一个1~n的排列, J选择一对数, 交换.F接着走, 扔一硬币, 若正面朝上, 随机选择一对降序排列的相邻数, 交换. 若反面朝上, 随机选择一对升序排列的相邻数, 交换. 当数列成为严格升序的时候游戏结束.求让游戏尽早结束的情况下, 移动次数的期望. 思路:首先分析游戏结束的方法: 由于是排列, 严格升序就是1~n. J的话..直

2013-10-07 18:35:22 2296

原创 [HDU 4433]locker[DP]

题意:给出密码做的现状和密码, 每次可以移动连续的最多3列, 向上或向下, 求将密码调出来所需要的最少步数.思路:首先应看出,恢复的过程中, 调每一位的时间顺序是不影响的, 不妨就从左到右一位位消除.dp[ i ][ x ][ y ] 表示前 i 位已经消除为0, 且其后的两位为x,y时, 所需要的最小操作数.每次可以旋转1~3位, 注意旋转3位时, 第三位和第二位的约束关系.

2013-10-06 13:50:01 1760

原创 [poj 2817]Wordstack[状压DP]

题意:给出N个串, 将其排列在N行上, 利用空格缩进, 使得每一行和上面一行的串重叠的部分最长. 求这个长度.思路:N最大为10, 考虑状压dp.state为串的状态, dp[state][ i ] 表示state状态下以第 i 个穿开头的方案中,重叠的最大长度. 则有:枚举state中的任意一个串 i 作为第一行, 另一个串 j 作为第二行, state' = state^(

2013-10-05 15:57:14 1507

原创 [CF 351A]Jeff and Rounding[greedy]

题意:给出一个数列, 实数的, 共有偶数项. 选出两项, 其一向上取整, 另一向下取整. 得到新的整数数列. 某种取法可以使得新旧数列之间的差的绝对值最小. 求这个最小的绝对值.思路:这种题关键是找出规律..首先,随机选出一对非整数, old - new = sumof2 - 1. 由此可见, 选出一对非整数 和如何组合无关. 只要是认为某数和非整数组合, 就会有前式成立.当选

2013-10-05 12:50:52 1649

原创 [light oj 1018]Brush(IV)[状压DP]

题意:给出n个点, 求过这n个点所需的最少直线条数.思路:state表示点的状态,目的是求出对于某个state, 所需的最小直线条数.朴素地想state之间的转移情况, 记得要体现"半隐半显"的方法... 那就是枚举一个state中的任意一对点, 去掉这对点所在的直线经过的所有点, 得到state' , 答案就是ans[state] = min(ans[state], ans[

2013-10-04 20:08:01 1705

原创 [light oj 1032]Fast Bit Calculations[数位DP]

题意:求0到N范围内所有数中, 二进制形式中邻接"1"的对数.思路:数位DP.1. 记住数位DP就是要按位, 如果再一个一个数地增就不是数位DP了...2. 有明显层次性的, 一般要预处理.3. 按照状态去设置每一维的意义, 要为"可接续性"服务.(最高位为xx, 最低位为xx, 以xx结尾, 以x但不以xx结尾...之类的)这一题就是首先预处理出dp[i]

2013-10-04 15:59:23 1927

原创 [poj 1699]Best Sequence[kmp][DP]

题意:n个串,构造出一个最短的串,使得这n个串每个串都是这个串的子串,输出的串的长度思路:1.预处理出一个串的前缀最多匹配多少长度的另一个串的后缀2.设dp[i][j]表示i状态的总串,最后一个子串为j时所构造的字符串的最短长度,每次枚举一个子串进行转移#include#include#include#include#include#includeusi

2013-10-04 10:12:41 1417

原创 [CF 219D]Choosing Capital for Treeland[树形DP]

题意:给出n个点, n-1条有向边, 问从一个点出发到其他所有点时, 使得逆的边数最小的出发点, 以及逆的边数. 有多个出发点的话升序输出.思路:树形DP.这里DP的要义是一种递推, 只不过是沿着树的结构去递推.有一个关系需要发现: 当知道一个点到其他所有点需要逆的边的条数之后, 其他各点的结果可以通过递推求出:假设root有son1和son2, root到其他所有

2013-10-03 16:13:14 1248

原创 [CF 148D]Bag of mice[概率DP]

题意:袋中有w白鼠,b黑鼠.A - princess  B - dragonA,B轮流随机拿出一只, A先拿, B拿了一只之后会有一只鼠随机跑出.先拿到一只白鼠的获胜.问A获胜的概率.思路:概率DP.要义是记忆化搜索. 因为概率是一回合一回合累加的, 询问后面的概率时, 会用到前面的概率.dp记录的内容和问题有关, 这里只问A获胜的概率, 则dp[i][j]表示

2013-10-02 18:46:14 1181

原创 [CF 279D]The Minimum Number of Variables[状压dp]

题意:很不好描述的题意...看了Hint再看Description才理解的.You've got a positive integer sequence a1, a2, ..., an. All numbers in the sequence are distinct. Let's fix the set of variables b1, b2, ..., bm. Initia

2013-10-02 16:47:08 1411

原创 [CF 279C]Ladder[segment]

题意:给出一列数,满足b1 ≤ b2 ≤ ... ≤ bx ≥ bx + 1 ≥ bx + 2... ≥ bk的子段为Ladder. 给出一系列询问, 判断该子段是否构成Ladder.思路:朴素地想:对于一个询问, 向右扫描,若一直不减, yes.若遇到第一个减少项, 则记录其前驱, 看此后是否一直不增. 若是, yes. 否则,no.这样的话 最多是O(n*m)的...1e10的数量级, 超时...注意到询问是动态的, 而数列是静态的. 可以预处理, 记录下数列的性质, 查询的时候直接调用

2013-10-02 11:16:21 1456

转载 [HDU 4115]Eliminate Conflict[2-SAT]

http://www.cnblogs.com/ambition/archive/2011/11/09/Eliminate_the_Conflict.html题意:两个人石头剪刀布,一个人的出法是确定的,另一个人的出法有一定约束,某两次要相同或者不同,问你第二个人能否全部都不失败。思路:拆成六个点:石头(R), 非石头(~R)    布(P), 非布(~P)剪

2013-10-01 20:32:25 891

原创 [HDU 4118]Holiday's Accommodation[图论][非递归dfs]

题意:有一棵树, 节点表示城市, 每个城市有一个人. 人们要旅行到其他城市. 相当于一个置换. 求总的路程最大值.思路:ans = Σ (每条路长 l )*(经过这条路的最大次数 f )f = 2 * 这条边左边节点数和右边节点数最小值k. (这样左边的每一个点一定能够对应右边的某个点)这个k可以dfs 求得.但是直接dfs 会爆栈...需要将其改为非递归...

2013-10-01 19:19:28 1594

原创 [HDU 4119]Isabella's Message[字符串模拟]

题意:给出一个表格和一块蒙版, 露出的字母按一定顺序读出, 蒙版旋转, 初始位置不定.只认识给定的一些词. 问可辨识的短语. 多种情况输出字典序最小的.思路:字符串处理的模拟题.主要是有几步:1. 读入. 2. 得到蒙版四个方向读出的串.3. 将这四个串以四种方式串联.4. 消除前导空格, 合并中间连续的多个空格.5. 判断是否是认识的词.6. 将字

2013-10-01 15:42:42 1597

原创 [HDU 4112]Break the Chocolate[YY推公式]

题意:一块N*M*K的巧克力, 徒手掰一次掰一层, 用刀切可重叠. 问得到1*1*1的块最少的次数.思路:推公式...首先考虑徒手掰:对于一维的, n-1.二维的, (m-1) + m*(n-1) = m*n - 1.三维的, (k - 1) + k*(m*n - 1) = k*m*n - 1.然后是用刀切:对于一维的, lg n.对于二维的, lg n

2013-10-01 14:30:59 896

原创 [HDU 2896]病毒侵袭[AC自动机]

题意:多模式串匹配,输出模式串的ID思路:典型AC自动机.用向量存储答案ID#include #include #include #include #include #include using namespace std;const int MAXL = 130;/*inline int GetID(char x){ return x;}*/

2013-09-19 19:59:51 1023

原创 [HDU 2222]Keywords Search[AC自动机]

题意:多模式串匹配.思路:AC自动机,注意回溯.优化fail建立过程.#include #include #include using namespace std;const int MAXL = 1000005;const int MAXK = 52;const int MAXNODE = 240005;const int MAXCHD = 26;int chd[MAXN

2013-09-19 19:55:29 1037

原创 [zoj 3587]Marlon's String[kmp]

题意:Return the amount of tetrad (a,b,c,d) which satisfySa..b + Sc..d = T , a≤b andc≤d.思路:正反两次kmp,匹配出最长前后缀的匹配次数.再进行统计.注意的是统计的方法:因为记录的是最长前后缀, 而统计时要将所有的前后缀都要算进去, 相当于每加一次, 都要沿着next回溯到-1.

2013-09-19 17:28:53 1299

原创 [HDU 4741]Save Labman No.004[计算几何][精度]

题意:求两条空间直线的距离,以及对应那条距离线段的两端点坐标.思路:有一个参数方程算最短距离的公式, 代入求即可.但是这题卡精度... 用另外的公式(先算出a直线上到b最近的点p的坐标, 再算出b直线上到a最近的点q的坐标, 再求这两点距离)用double可以过, 直接参数方程的公式用long double才可以>WA,G++->AC...long double

2013-09-15 20:44:41 1290

原创 [HDU 4734]F(x)[数位DP]

题意:将一个十进制数n = dn dn-1 ... d0视为二进制. 即F(n) = dn*2^n + ... + d0*2^0.给出A, B. 求0 ... B之间, 该值不大于F(A)的数的个数.思路:数位DP.数位DP的优点在于, 你不需要知道这个答案是怎么来的, 只需要知道递推式. 这个答案的生成过程就在递推的过程中.dp [ i ] [

2013-09-14 19:42:11 2453 3

原创 [HDU 2594]Simpsons’ Hidden Talents[kmp求公共前后缀]

题意:求两个串s1, s2中s1的前缀与s2的后缀的最长公共部分.思路:next数组应用.注意先判断主串是否结束, 再判断模式串是否结束. 1WA>#include #include #include const int MAXN = 50005;int next[MAXN],ans;char s1[MAXN];char s2[MAXN];//15MS 492

2013-09-13 21:45:25 1246

原创 [HDU 2087]剪花布条[kmp非重叠匹配]

题意:求一个长串最多可以被分成几个子串.思路:kmp, 只是不能重叠. 匹配成功后 j 回溯到 -1 而不是到 next [ j ]#include #include const int MAXN = 1005;int next[MAXN],ans;char s[MAXN];char a[MAXN];//0MS 204Kvoid prekmp(){

2013-09-13 17:42:45 1239

原创 [HDU 1358]Period[kmp求周期]

题意:每一个power前缀的周期数(>1).思路:kmp的next. 每一个前缀都询问一遍.#include #include const int MAXN = 1000005;int next[MAXN];char s[MAXN];//93MS 5092Kvoid prekmp(){ next[0] = -1; int j = -1; f

2013-09-13 17:16:57 1070

原创 [HDU 3746]Cyclic Nacklace[kmp求周期]

题意:求从末端补足至少两周期的最小项数.思路:kmp求循环周期应用#include #include const int MAXN = 100005;int next[MAXN];char s[MAXN];//125MS 688Kvoid prekmp(){ next[0] = -1; int j = -1; for(int i=1;s

2013-09-13 16:49:18 969

原创 [HDU 3336]Count the String[kmp][DP]

题目是求所有前缀串的匹配次数之和, 那么可以先求前缀串 Si 在整个串中的匹配次数, 再加和.可设dp[ i ]为前缀串 Si 在总串中出现的次数.dp[i] = 1;dp[next[i]] += dp[i];还有另一种思路:可以将前缀的匹配次数视为包含的前缀个数.最终的问题是求s中 (设每一种前缀i包含的前缀个数Fi ) ΣFi .dp[i]为前缀串s[0...i]包含的前缀个数的新增数目(相对于前缀串s[0...i-1]).

2013-09-13 16:23:24 956

原创 [poj 3450]Corporate Identity[暴力枚举子串]

题意:和poj 3080相同.同样是暴力.又是循环边界的小毛病...#include #include //372K 110MSconst int R = 4005;const int C = 205;char s[R][C];char t[C],ans[C];int n;int main(){ while(scanf("%d",&n)

2013-09-13 11:27:59 1065

原创 [poj 3080]Blue Jeans[暴力枚举子串]

题意:找出DNA序列中最长公共子串, 长度不小于3, 否则输出"no significant commonalities". 若等长有多个, 取字典序最小的.思路:若是最长公共子串, 每个串中都有, 因此可以只枚举第一个串(由于数据范围小, 先不考虑优化问题).长度从小到大枚举(若是小的都不满足, 直接跳出判结果; 反之, 则需要一直试探, 找到第一个满足的长度即最大长度)id

2013-09-13 10:53:24 1085

原创 [POJ 2185]Milking Grid[kmp]

优化到79MS.求可以重复地平铺, 来构造出整个矩阵的矩形单元的最小面积.小方格的尺寸并不一定要均匀地分割大矩形的尺寸.自己实现一下:统计所有可能的覆盖子串的时候也可以利用next 数组, len - 1 - next [ len - 1 ] 本身就忽视了结尾的不完整项(只是循环的字段视为右对齐, 但是长度不影响).用这个公式算出的一定是最小覆盖子串, 那么求出覆盖次数后, 相乘便得到最大覆盖子串, 中间的均以整倍递增.

2013-09-13 09:55:09 904

原创 [HDU 1711]Number Sequence[kmp]

数字kmp.pure water.#include using namespace std;const int MAXN = 1000005;const int MAXM = 10005;int n,m,a[MAXN],b[MAXM],k;int next[MAXM];void prekmp(){ next[0] = -1; int j = -1;

2013-09-12 16:43:59 740

翻译 [20130909]60-Second Science[serial]

传送门:http://bulo.hujiang.com/menu/1999/item/819466/###时间依旧...紧张>===Being Monitored Motivates Less Electricity Use【科学60秒】1024 监督与节能Using less energy saves money and lowers greenhou

2013-09-10 01:12:22 830

原创 [poj 2752] Seek the Name, Seek the Fame[KMP]

题意:求字符串S的, 既是前缀串, 又是后缀串的子串.思路:next数组的应用.#include #include #include using namespace std;const int MAXN = 400005;char s[MAXN];int next[MAXN];int stack[MAXN],top,n;void prekmp(){ nex

2013-09-09 10:54:49 913

翻译 [20130908]60-Second Science[serial]

传送门:http://bulo.hujiang.com/menu/1999/item/818971/我承认...今天耽误太久了...但是怎么也不能断掉...先浅听一篇科学60秒吧...===1024 疯长中的欧洲汉子 European Men Experienced Century-Plus Growth SpurtWe alread

2013-09-09 01:10:21 800

翻译 [20130907]A Short History of Nearly Everything[serial]

传送门:http://ting.hujiang.com/wanwujianshi/15158701132/这样的进度还是太慢啊,以后得3倍速了..转战托福TPO(预计3个月听完. 这个宇宙的...难度不太够>真的不是时间少, 还是太拖延. 浪费仍然严重. 时间利用仍有很大提升空间.那么, 宇宙这个就暂停更新喽...===Still unaware of

2013-09-08 00:37:10 751

汉明码简明笔记-讲解-详解

汉明码的通俗讲解,配有原汁原味的hamming 1950年的论文的一部分。初学者必备,十分钟学会汉明码~

2014-03-21

空空如也

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

TA关注的人

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