#include <iostream>#include <algorithm>using namespace std;int main(){ int m,n,k,i,list[1024]; cin>>m;while(m--) { scanf("%d%d",&n,&k); for(i=0;i<n;i++) scanf("%d",&list[i]); while(k--) next_permutation(list,list+n); for(i=0;i<n;i++) printf(&qu
转载 2011-07-18 11:30:00
29阅读
2评论
Description 题目描述: 大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,
原创 2022-12-07 14:17:41
116阅读
题意: 给你某个排列 求从下一个排列开始的第k个排列如果是最后一个排列 则下一个排列为1 2 3 ... n// 1 用stl 里面的 next_permutation// 2 用生成下一个排列算法// 1)从末尾开始找第一个正序 A[i-1]A[i-1]// 3)交换 A[i-1],A[j]// 4)将下标从i开始的序列翻转 #include #include #include#include #include #include #include #include using namespace std;int s[2000];int n,k;void change(i...
原创 2021-07-29 16:19:16
80阅读
利用next_permutation,这个不需多余判断,直接就可处理由最后一个排列跳转到第一个排列的过程。用g++会tle,得用c++.View Code #include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;#define maxn 1028int f[maxn];int main(){ //freopen("D:\\t.txt", "
转载 2011-04-08 19:48:00
22阅读
2评论
题目链接:传送门题目背景《爱与愁的故事第四弹·plant》第一章。题目描
原创 2022-10-25 16:36:52
111阅读
http://www.lydsy.com/JudgeOnline/problem.php?id=1833 2.5个小时就花在这上面了。。。 水到200题了。。。然并卵,天天做水题有什么前途。。。 #include<bits/stdc++.h> using namespace std; typedef
转载 2017-05-20 13:08:00
91阅读
2评论
http://poj.org/problem?id=1833 题意: 给出一个排序,求出它之后的第k个排序。 思路: 排序原理: 1、如果全部为逆序时,说明已经全部排完了,此时回到1~n的排序。 2、从后往前找到第一对 ai<ai+1,然后从i+1~n寻找比ai大的最小的数并与之互换,之后再对i+1
转载 2017-04-22 14:27:00
67阅读
2评论
排列Time Limit: 1000MSMemory Limit: 30000KTotal Submissions: 13977Accepted: 5710Description 题目描述: 大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 1六个排列。 任务描述: 给出某个排列,求出这个排列的下k个排列,如果遇到最后一个排列,则下1排列为第1个排列,即排列1 2 3…n。 比如:n = 3,k=2 给出排列2 3 1,则它的下1个排列...
转载 2013-04-07 13:22:00
91阅读
2评论
排列http://poj.org/problem?id=1833Time Limit: 1000MSMemory Limit: 30000KDescription题目描述: 大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3
原创 2023-04-12 05:59:47
119阅读
题目链接:POJ 1833 /************************************ * author : Grant Yuan * time : 2014/10/19 16:38 * source : POJ 1833 * algorithm: STL+排列的生成 *******
转载 2017-07-15 09:12:00
78阅读
2评论
很裸的数位dp。
转载 2018-09-04 23:36:00
21阅读
2评论
思路: 数位DP f[i][j][k]表示走到第i位 开头位j 数字k 出现的次数 $f[i][j][k]+=f[i-1][l][k];$$f[i][j][j]+=base[i]$ calc的时候要有特殊的技巧...(我看题解学会的)
转载 2017-04-01 07:57:00
53阅读
2评论
用cin会超时,,,规律自己想吧,#includen; int go[2000]; int t; scanf("%d",&t); while (t--
原创 2023-07-27 18:47:03
39阅读
这个数位dp倒是没什么限制条件,只是需要在过程中把每个数字出现次数记录一下即可。记忆化返回时数学算出。框架还是套板子。
原创 2021-07-15 15:51:10
48阅读
考虑一下简单环覆盖这个图的意义,其实就是找出原序列的所有排列,满足所有<i,a[i]>都是原图中的一条有向边。 因为一个置换就是由很多简单环构成的。 于是我们可以设 f[i][S] 为考虑了前i个点的出边,且有入度的点集为S的方案数。 直接dp不难发现复杂度是 O(n^2 * 2^n),正好会T掉2
转载 2018-04-19 09:54:00
51阅读
2评论
## 如何解决“DruidDataSource.java:1833 - recycle error” ### 1. 流程图 ```mermaid flowchart TD Start(开始) Step1(查找出错的代码行) Step2(分析错误原因) Step3(解决错误) End(结束) Start --> Step1 --> Ste
原创 2023-08-18 03:58:09
1816阅读
给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少
原创 2023-04-24 23:56:17
101阅读
题目描述: 大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 1六个排列。 任务描述: 给出某个排列,求出这个排列的下k个排列,如果遇到最后一个排列,则下1排列
转载 2017-11-14 23:25:00
211阅读
2评论
http://poj.org/problem?id=1833大意:给出某个排列,求出这个排列的下k个排列,如果遇到最后一个排列,则下1排列为第1个排列,即排列1 2 3…n。看见此题,马上联想到《C语言名题精选百则》——整数全排列,当时已经接触了一种生成排列的STL算法——next_permutation()(不要说我太赖,ACM不就是讲究快准狠吗?)此题同样用它,瞬A
原创 2022-08-09 17:20:33
45阅读
Description 问 \([L,R]\) 中0-9的个数. Sol 数位DP. 预处理好长度为 \(i\), 最高位为 \(j\) 的数位之和. 然后从上往下计算,不要忘记往下走的同时要把高位的贡献加上去.. Code
原创 2021-08-04 09:32:19
102阅读
  • 1
  • 2
  • 3
  • 4
  • 5