WTF交换
来源:互联网 发布:苹果手机载入数据失败 编辑:程序博客网 时间:2024/04/30 15:11
模拟
题意真麻烦不说了。
用DP模拟题意yy一下加优化就好了,详见代码。
#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for(i=a;i>=b;i--)using namespace std;const int maxn=3000+10,inf=100000000;int f[maxn][maxn],re[maxn][maxn];int a[maxn],id[maxn];int i,j,k,l,t,n,m,ans;int mo(int x){ return (x%n+n)%n;}int main(){ //freopen("t4.in","r",stdin);freopen("t4.out","w",stdout); scanf("%d%d",&n,&m); fo(i,0,n-1) scanf("%d",&a[i]); fo(i,2,n+1) fo(j,1,n-1) f[i][j]=-inf; fo(i,2,n+1){ t=-inf; k=0; fo(j,1,n-1){ f[i][j]=f[i-1][j]+a[mo(j-1-l)]-a[mo(j-l)]; re[i][j]=j; if (t-a[mo(j-l)]>f[i][j]){ f[i][j]=t-a[mo(j-l)]; re[i][j]=k; } if (a[mo(j-1-l)]+f[i-1][j]>t){ t=a[mo(j-1-l)]+f[i-1][j]; k=j; } } t=-inf; k=0; fd(j,n-1,1){ if (t+a[mo(j-1-l)]>f[i][j]){ f[i][j]=t+a[mo(j-1-l)]; re[i][j]=k; } if (-a[mo(j-l)]+f[i-1][j]>t){ t=-a[mo(j-l)]+f[i-1][j]; k=j; } } l=(l+m)%n; } ans=-inf; fo(i,1,n-1) if (f[n+1][i]>ans){ ans=f[n+1][i]; id[n+1]=i; } printf("%d\n",ans); fd(i,n+1,2) id[i-1]=re[i][id[i]]; fo(i,1,n+1) printf("%d ",id[i]); //fclose(stdin);fclose(stdout);}
0 0
- WTF交换
- WTF交换
- WTF
- WTF String
- dota wtf
- flask-wtf
- What is WTF?
- Low-Latency Kernel? WTF?!?!
- OVF? OVA? WTF?
- Chromium wtf ptr简介
- wtf is "void"
- [WTF]Xposed使用
- Flask-WTF 示例
- Flask的WTF使用
- WTF之安全删除对象
- Web表单(Flask-WTF)
- 2016.09.01 69.9kg WTF
- flask wtf 表单校验总结
- Online Scanners and Sandboxes
- SEAndroid简介
- 集合的可变性
- 【转】Android 程序获取、设置铃声、音量、静音、扬声器
- springmvc学习笔记(7)-springmvc整合mybatis之mapper
- WTF交换
- 《剑指offer》——数组中重复的数字
- 时候不到?
- Linux线程-互斥锁pthread_mutex_t
- hdu 诡异的楼梯
- CSS选择器
- 解决Windbg的waiting to reconnect
- 在PHP中利用wsdl创建标准webservice的实现代码 SoapDiscovery.class.php
- Android开机不锁屏