Joseph POJ - 1012 约瑟夫环递推】的更多相关文章

题意:约瑟夫环  初始前k个人后k个人  问m等于多少的时候 后k个先出去 题解:因为前k个位置是不动的,所以只要考虑每次递推后的位置在不在前面k个就行 有递推式 ans[i]=(ans[i-1]+m-1)%(n-i-1)  其中i是轮数  ans[i]是i出局的位置 出局后后面的补到前面 也就是i+1轮开始的位置了   m是数多少个出去 这里的是从0开始的,而题目是从一开始 ,平移一下即可 只要ans[i] 前K次不落在前K个即可  打表也行 #include<iostream> #incl…
/* * POJ-1012.cpp * * Created on: 2013年10月31日 * Author: Administrator */ #include <iostream> #include <cstdio> using namespace std; int x[] = { 2, 7, 5, 30, 169, 441, 1872, 7632, 1740, 93313, 459901, 1358657, 2504881 }; int main(){ int n; whil…
题目链接:http://poj.org/problem?id=1664 dp[i][j]表示i个盘放j个苹果的方案数,dp[i][j] 可以由 dp[i - 1][j] 和 dp[i][j - i] 递推而来. 当盘子的个数大于等于苹果的个数: dp[i - 1][j] :i - 1个盘子放j个苹果,说明i个盘子里最少有一个盘子是空的 dp[i][j - i] :i个盘子都放了苹果,说明有j - i个苹果是随便放置的 否则: dp[i][j] = dp[i - 1][j] 然后没有苹果的盘子的方…
Computer Transformation Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4561 Accepted: 1738 Description A sequence consisting of one digit, the number 1 is initially written into a computer. At each successive time step, the computer simul…
http://poj.org/problem?id=2506 题意: 思路:递推.a[i]=a[i-1]+2*a[i-2]. 计算的时候是大整数加法.错了好久,忘记考虑1了...晕倒. #include<iostream> #include<string> #include<cstring> #include<cstdio> using namespace std; int n; ][]; void cacl(int i) { int k; ]); ]);…
思路: 1. 每个板子有左右两端, dp[i][0], dp[i][1] 分别记录左右端到地面的时间 2. 从下到上递推计算, 上一层的板子必然会落到下面的某一层板子上, 或者地面上 总结: 1. 计算每个板子的 dp[i][0/1] 仅需考虑该板子的直接前驱即可 2. 动规的思想并不很明显 3. 代码中, 两个板子相对位置的判断特别精髓 4. 将地面和初始状态都抽象成一块板子 代码: #include <iostream> #include <algorithm> using n…
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数(从1开始报数),数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直到圆桌周围的人全部出列. 首先从编程的角度声明一下上面描述中的一点,就n,k,m这些都是下标从1开始的.而在实际编程中,我们一般将下标从0开始.所以这一点要注意一下. 第一种方法:使用队列. 这种解法直观,简单.首先你要明白队列这种数据结构,是一种先进先出的线性结构,如同生…
Description A well known algorithm called heapsort is a deterministic sorting algorithm taking O(n log n) time and O(1) additional memory. Let us describe ascending sorting of an array of different integer numbers.  The algorithm consists of two phas…
构造,递推,因为划分是合并的逆过程,考虑怎么合并. 先把N展开成全部为N个1然后合并,因为和顺序无关,所以只和出现次数有关情况有点多并且为了避免重复,分类,C[i]表示序列中最大的数为2^i时的方案数 树形表示合并 (UVA 10562 Undraw the Trees的表示方法...7          (2^0) (7表示2^0出现的次数)_ _ _|  |  |1 2 3    (2^1) (7个1可以合并成1~3个2) _ _   |  |   1 1         (2^2) (继续…
POJ3734 比较简单的递推题目,只需要记录当前两种颜色均为偶数, 只有一种颜色为偶数 两种颜色都为奇数 三个数量即可,递推方程相信大家可以导出. 最后来个快速幂加速即可. #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<vector> #include<queue> #include<stack> #includ…