Adjacent Bit Counts 4557 Adjacent Bit CountsFor a string of n bits x 1 , x 2 , x 3 ,..., x n , the adjacent bit count of the string (AdjBC(x)) is given byx 1 ∗ x 2 + x 2 ∗ x 3 + x 3 ∗ x 4 + . . . + x n−1 ∗ x nwhich counts the number of times a 1 bit…
Adjacent Bit Counts Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: Main Prev Submit Status Statistics Discuss Next Type: None   None   Graph Theory       2-SAT       Articulation/Bridge/Biconnected Compo…
Adjacent Bit Counts Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 599   Accepted: 502 Description For a string of n bits x1, x2, x3, …, xn, the adjacent bit count of the string (AdjBC(x)) is given by x1*x2 + x2*x3 + x3*x4 + … + xn-1*xn…
/** 题意: 给出一个01串 按照题目要求可以求出Fun(X)的值 比如: 111 Fun(111)的值是2: 输入: t (t组测试数据) n k (有n位01串 Fun()的值为K) 输出:有多少种组合 使得这n位01串的Fun()值为k; 分析: 动态规划 转移方程 dp[i][j][k] i代表01串的长度 j代表Fun()的值(或者说是权重) k代表最后一位是0还是1 在已知的01串后面加一个0 添加前后的权值不会发生变化 即dp[i][j][0]=dp[i-1][j][0]+dp[…
描述 For a string of n bits x1, x2, x3, …, xn,  the adjacent bit count of the string  is given by     fun(x) = x1*x2 + x2*x3 + x3*x 4 + … + xn-1*x n which counts the number of times a 1 bit is adjacent to another 1 bit. For example: Fun(011101101) = 3…
For a string of n bits x1, x2, x3,…, xn, the adjacent bit count of the string (AdjBC(x)) is given by x1 ∗ x2 + x2 ∗ x3 + x3 ∗ x4 + . . . + xn−1 ∗ xn which counts the number of times a 1 bit is adjacent to another 1 bit. For example: AdjBC(011101101)…
点我看题目 题意 :给你一串由1和0组成的长度为n的数串a1,a2,a3,a4.....an,定义一个操作为AdjBC(a) = a1*a2+a2*a3+a3*a4+....+an-1*an.输入两个数m和k,要求输出满足长度为m的数串进行上述操作能够得到的结果为k的个数. 思路 : 典型DP,列出状态转移方程就行了.dp[i][j][0]代表长度前 i 的数串和为 j 并且当前位置为0. dp[i][j][1]=dp[i-1][j][0]+dp[i-1][j-1][1]; dp[i][j][0…
Monday_ 今晚补了扔鸡蛋问题的动态规划问题,补了这道题,感觉视野又开阔了些. 写了一道思维题cf 1066A 数字逻辑后半节听得打脑壳,现在很晚了,明天再看叭. Tuesday_ 今晚补了 adjacent bit counts这道题 也是一道动归的题,不得不说,动态规划真的很神奇,还是要多练一些,视野才会更加开阔 事情越堆积越多,acm这周就要结课了,该把前面的题补了. 明天继续补组队赛的题.加油鸭! 并乐此不疲着. Wednesday_ 今天晚上一直在学凸包的问题,不过还不会…
C:  最舒适的路线 (并查集) #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define INF 20000000 struct point { int x, y, v; }; point node[]; ]; bool cmp(point a, point b) { return a.v < b.v;/…
转:http://www.cnblogs.com/easonliu/p/3696135.html 分析:这个问题是google的面试题.由于一个字符串有很多种二叉表示法,貌似很难判断两个字符串是否可以做这样的变换.对付复杂问题的方法是从简单的特例来思考,从而找出规律.先考察简单情况:字符串长度为1:很明显,两个字符串必须完全相同才可以.字符串长度为2:当s1="ab", s2只有"ab"或者"ba"才可以.对于任意长度的字符串,我们可以把字符串s…
(Version 0.0) 作为一个小弱,这个题目是我第一次碰到三维的动态规划.在自己做的时候意识到了所谓的scramble实际上有两种可能的类型,一类是在较低层的节点进行的两个子节点的对调,这样的情况如果我们从第一层切分点,或者说从较高层的切分点看的话,s1和s2切分点左边的子串所包含的字符的种类个数应该完全一致,同样右边也是完全一致:另一类是在较高层切分点进行的互换,这样我们如果在同层来考察s1和s2的话,会发现s1的切分点左侧的char和s2的切分点右侧的char种类和每种char的数目一…
三维的与二维大同小异,看代码. #include<cstdio> #include<cstring> #include<algorithm> #define REP(i, a, b) for(int i = (a); i < (b); i++) using namespace std; const int MAXN = 112; char a[MAXN], b[MAXN], c[MAXN]; int f[MAXN][MAXN][MAXN], path[MAXN][…
题目大意:过生日,有一个N*M的表格,每个位置都有一块一定重量的蛋糕你可以选择吃完或者不吃,从(1,1)走到(n,m),每次只能向右走或向下走,最多能吃k重量的蛋糕.问你最多能吃多少蛋糕. 题目思路:之前的01背包我们都是用一维数组v[]来储存的,但这次要用二维数组Map[i][j]储存一个点的价值,当前点由Map[i][j-1]或Map[i-1][j]走到. 状态转移方程式:dp[i][j][q]=max(dp[i][j][q],Map[i][j]+max(dp[i][j-1][q-Map[i…
总述 状态压缩动态规划,就是我们俗称的状压DP,是利用计算机二进制的性质来描述状态的一种DP方式 很多棋盘问题都运用到了状压,同时,状压也很经常和BFS及DP连用,例题里会给出介绍 有了状态,DP就比较容易了 举个例子:有一个大小为n*n的农田,我们可以在任意处种田,现在来描述一下某一行的某种状态: 设n = 9: 有二进制数 100011011(九位),每一位表示该农田是否被占用,1表示用了,0表示没用,这样一种状态就被我们表示出来了:见下表 列 数 1 2 3 4 5 6 7 8 二进制 1…
题目:House Robber You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected a…
动态规划属于技巧性比较强的题目,如果看到过原题的话,对解题很有帮助 55. Jump Game Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Determine if you ar…
动态规划在很多情况下可以降低代码的空间时间复杂度. 判断一道问题能否应用动态规划,需要关注问题是否具有最优子结构,当前规模的问题的解在之前问题的解里面,还要注意的是要满足无后效性的原则.随后就是寻找递归方程.通常使用一维数组,二维数组,甚至三维数组来存储不同规模问题的解,一些情况下也可以使用 O(1) 的空间来存储解,具体要视递归方程而定.以leetcode几个问题为例. leetcode 53. Maximum Subarray Find the contiguous subarray wit…
3D打印:三维智能数字化创造(全彩)(全球第一本系统阐述3D打印与3D智能数字化的专业著作) 吴怀宇 编   ISBN 978-7-121-22063-0 2014年1月出版 定价:99.00元 428页 16开​ ​编辑推荐​ 本书包含最新创客实践:组装3D打印机,开设3D照相馆,制作四轴飞行器...... 拥有众多读者群体:操作实战派.技术方法派.商业运作派.大局宏观派.学院理论派...... 操作实战派:面向所有对3D打印感兴趣的读者,包括3D打印操作.3D智能数字化扫描.建模.网格处理(…
[题目] 把N个骰子扔在地上,所有骰子朝上一面的点数之和为S.输入N,打印出S的所有可能的值出现的概率. [分析] 典型的动态规划题目. 设n个骰子的和为s出现的次数记为f(n,s),其中n=[1-N],s=[n-6n]. n=1, s=[1-6], f(n,s)=1; n=[2-N], s=[n-6n], f(n,s)= f(n-1,s-1)+ f(n-1,s-2)+ f(n-1,s-3)+ f(n-1,s-4)+ f(n-1,s-5)+ f(n-1,s-6) = sum(f(n-1,s-t)…
Cow Bowling DescriptionThe cows don't use actual bowling balls when they go bowling. They each take a number (in the range 0..99), though, and line up in a standard bowling-pin-like triangle like this:          7        3   8      8   1   0    2   7 …
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected and it will autom…
一.题目 House Robber(一道Leetcode上的关于动态规划的简单题目)具体描述如下: There is a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent hous…
Total Accepted: 31557 Total Submissions: 116793     Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below. [ [2], [3,4], [6,5,7], [4,1,8,3] ] The minimum path sum from top to botto…
描述 http://poj.org/problem?id=3176 给出一个三角形,每个点可以走到它下面两个点,将所有经过的点的值加起来,问最大的和是多少. Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16826   Accepted: 11220 Description The cows don't use actual bowling balls when they go bowling.…
在利用动态规划解决的一些实际问题当中,一类是基于区间上进行的,总的来说,这种区间dp是属于线性dp的一种.但是我们为了更好的分类,这里仍将其单独拿出进行分析讨论. 让我们结合一个题目开始对区间dp的探讨. 凸多边形的最优三角剖分:给定一个具有N个顶点(N ≤ 50)(顶点从1到N编号)的凸多边形,每个顶点的权均已知.问如何把这个 凸多边形划分成N-2 个互不相交的三角形,使得这些三角形顶点的权的乘积之和最小. 其实有一些组合数学底子的读者对这个模型会非常熟悉,笔者在<组合数学——Catalan数…
通过先前在<动态规划——背包问题>中关于动态规划的初探,我们其实可以看到,动态规划其实不是像凸包.扩展欧几里得等是具体的算法,而是一种在解决问题中决策的思想.在不同的题目中,我们都需要根据题设恰到好处的把整个过程分割成小的状态,然后找到对应的状态转移方程,尽管都是这个过程,但是有时候条件稍微一遍,我们分析状态并找状态转移方程的思路都会发生改变,因此动态规划的题目呈现出很大的灵活性. 除了典型那背包问题涉及动态规划,还有很多其他的模型——概率dp.数位dp.区间dp.插头dp,这些都是在不同的情…
Burst Balloons Given n balloons, indexed from 0 to n-1. Each balloon is painted with a number on it represented by array nums. You are asked to burst all the balloons. If the you burst balloon i you will get nums[left] * nums[i] * nums[right] coins.…
POJ 3398 Perfect Service(树型动态规划,最小支配集) Description A network is composed of N computers connected by N − 1 communication links such that any two computers can be communicated via a unique route. Two computers are said to be adjacent if there is a com…
POJ 3659 Cell Phone Network / HUST 1036 Cell Phone Network(最小支配集,树型动态规划,贪心) Description Farmer John has decided to give each of his cows a cell phone in hopes to encourage their social interaction. This, however, requires him to set up cell phone tow…
CJOJ 1131 机器分配 / Luogu 2066 机器分配 (动态规划) Description Luogu: 总公司拥有高效设备M台,准备分给下属的N个分公司.各分公司若获得这些设备,可以为国家提供一定的盈利.问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值.其中M≤15,N≤10.分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M. CJOJ: 某总公司拥有高效生产设备M 台,准备分给下属的N 个分公司.各分公司若获得这些 设备,可以为总公司提供一定的盈利.…