LA 3882

时间:2022-08-29 19:39:57

动态规划;

白书上的题,看了好久看不懂刘汝佳的解法;

在网上无意中看到了大神的思路,比较好理解,膜拜!

他的思路是这样的:

设d[i]是n个数按顺时针方向分别从0开始编号,第一次删除0,以后每k个数删除一个,最后剩下的数。

实际上d[i]就是顺时针偏移了多少位。

状态转移方程:

d[i] = (k - 1 + d[i-1]) % (n-1) + 1;

(删了0后,剩下1,2,...,n,全部减1后得到0,1,2,...,n-1,所以原来该删k——>>k-1,顺时针偏移d[i-1]位,取模,加1后变回原来的编号)

代码:

 #include<cstdio>
#define maxn 10009
using namespace std;
int d[maxn]; int main()
{
int n,m,k;
d[]=;
while(scanf("%d%d%d",&n,&k,&m)&&(m+n+k))
{
for(int i=;i<=n;i++)d[i]=(d[i-]+k-)%(i-)+;
int ans=(m-+d[n])%n+;
printf("%d\n",ans);
}
return ;
}

LA 3882的更多相关文章

  1. LA 3882 - And Then There Was One&lpar;约瑟夫 递归&rpar;

    看题传送门 题目大意: N个数排成一圈,第一次删除m,以后每k个数删除一次,求最后一被删除的数. 如果这题用链表或者数组模拟整个过程的话,时间复杂度都将高达O(nk),而n<=10000,k&l ...

  2. LA 3882 And Then There Was One&lbrack;约瑟夫问题的变形&rsqb;

    And Then There Was One UVALive - 3882 Sample Input   Sample Output //设f[i]为(原约瑟夫问题)第i次要删除的标号 #includ ...

  3. LA 3882 And Then There Was One

    解题思路:分析要好久,懒得分析了,贴了某大牛的的分析,代码就是我自己写的. N个数排成一圈,第一次删除m,以后每k个数删除一次,求最后一被删除的数. 如果这题用链表或者数组模拟整个过程的话,时间复杂度 ...

  4. UVa LA 3882 - And Then There Was One 递推,动态规划 难度&colon; 2

    题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_pr ...

  5. LA 3882 经典约瑟夫环问题的数学递推解法

    就是经典约瑟夫环问题的裸题 我一开始一直没理解这个递推是怎么来的,后来终于理解了 假设问题是从n个人编号分别为0...n-1,取第k个, 则第k个人编号为k-1的淘汰,剩下的编号为  0,1,2,3. ...

  6. leggere la nostra recensione del primo e del secondo

    La terra di mezzo in trail running sembra essere distorto leggermente massima di recente, e gli aggi ...

  7. Le li&&num;233&semi; &&num;224&semi; la l&&num;233&semi;g&&num;232&semi;ret&&num;233&semi; semblait &&num;234&semi;tre et donc plus simple

    Il est toutefois vraiment à partir www.runmasterfr.com/free-40-flyknit-2015-hommes-c-1_58_59.html de ...

  8. Mac Pro 使用 ll、la、l等ls的别名命令

    在 Linux 下习惯使用 ll.la.l 等ls别名的童鞋到 mac os 可就郁闷了~~ 其实只要在用户目录下建立一个脚本“.bash_profile”, vim .bash_profile 并输 ...

  9. Linux中的动态库和静态库&lpar;&period;a&sol;&period;la&sol;&period;so&sol;&period;o&rpar;

    Linux中的动态库和静态库(.a/.la/.so/.o) Linux中的动态库和静态库(.a/.la/.so/.o) C/C++程序编译的过程 .o文件(目标文件) 创建atoi.o 使用atoi. ...

随机推荐

  1. 关于Java的基本类型

    Java的基本类型分为整数型,浮点型,字符型,布尔型.顾名思义整数型用来表示整数,浮点型用来表示带小数的数,字符型用来表示字符.特殊的是布尔型用来表示逻辑上的true(真)和false(假),一般与分 ...

  2. &lbrack;译&rsqb; libvirt 虚机的生命周期 (Libvirt Virtual Machine Lifecycle)

    翻译自:http://wiki.libvirt.org/page/VM_lifecycle   这篇文章描述虚机生命周期的基本概念.其目的在于在一篇文章中提供完整的关于虚机创建.运行.停止.迁移和删除 ...

  3. 设计模式之 Observer Pattern 观察者模式

    1.Subject通过一个容器保存零到多个Observer. 2.Subject通过Add,Delete方法调整Observer. 3.Subject的notifyObservers方法实际是逐个调用 ...

  4. C&plus;&plus;内置类型对象之间的转换

    C++定义了一组内置类型对象之间的标准转换,在必要时它们被编译器隐式地应用到对象上. 隐式类型转换发生在下列这些典型情况下. 1. 在混合类型的算数表达式中 规则:在这种情况下最宽的数据类型成为目标转 ...

  5. Spring AOP capabilities and goals

    Spring AOP 是用纯JAVA 实现的. 不需借助JAVA代码在编译处理阶段来实现. Spring 是在运行期实现的.AOP的实现可以在编译,加载,运行三个阶段来实现:Spring AOP 也不 ...

  6. 基于OpenCV做&OpenCurlyDoubleQuote;三维重建”(4)--相机姿态还原和实现三维重建

    v当我们构建成功了viz,就可以使用3维效果给我们提供的便利,进一步进行一些3维的操作. 在这个动画中,注意图片后面的那个黑线,对应的是相机的位置. /*----------------------- ...

  7. git 将本地仓库提交至github

    -or create a new repository on the command line touch README.md git init git add README.md git commi ...

  8. web 08 struts2入门 struts2配置 struts包

    电影网站:www.aikan66.com 项目网站:www.aikan66.com游戏网站:www.aikan66.com图片网站:www.aikan66.com书籍网站:www.aikan66.co ...

  9. Android Codenames&comma; Tags&comma; and Build Numbers

    Starting with Cupcake, individual builds are identified with a short build code, e.g. FRF85B. The fi ...

  10. FPN(feature pyramid networks)

    多数的object detection算法都是只采用顶层特征做预测,但我们知道低层的特征语义信息比较少,但是目标位置准确:高层的特征语义信息比较丰富,但是目标位置比较粗略.另外虽然也有些算法采用多尺度 ...