题意:给你一个序列,求对于任意i,都有$a_i\ge a_{\lfloor \frac{i}{k} \rfloor}$的字典序最大的序列
1、30分暴力(对于当时连dfs都不会的我最多也就只能拿这些分了QAQ)
枚举全排列判断(真TM暴力)
#include<cstdio> #include<iostream> #include<cstring> #include<cctype> #include<algorithm> #include<cmath> using namespace std; #define int long long #define olinr return #define _ 0 #define love_nmr 0 #define DB double inline int read() { int x=0,f=1; char ch=getchar(); while(!isdigit(ch)) { if(ch=='-') f=-f; ch=getchar(); } while(isdigit(ch)) { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); } return x*f; } inline void put(int x) { if(x<0) { x=-x; putchar('-'); } if(x>9) put(x/10); putchar(x%10+'0'); } int n; double k; int a[505050]; int ans[505050]; signed main() { n=read(); scanf("%lf",&k); for(int i=1;i<=n;i++) a[i]=read(); sort(a+1,a+n+1); do { for(int i=1;i<=n;i++) if(a[i]<a[(int)floor((double)i/k)]&&(int)floor((double)i/k)) goto shit; for(int i=1;i<=n;i++) ans[i]=a[i]; shit:; }while(next_permutation(a+1,a+n+1)); for(int i=1;i<=n;i++) put(ans[i]),putchar(' '); olinr ~~(0^_^0)+love_nmr; }