【JZOJ 4710】Value
来源:互联网 发布:纳网科技域名续缴费 编辑:程序博客网 时间:2024/04/30 12:25
Description
Solution
贪心的想,如果已经确认了选哪些点,那么顺序一定是以W的值排列,
所以按照这个性质,按w从大到小排个序,然后倒着选,
用DP来实现,
复杂度:
Code
#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fod(i,a,b) for(int i=a;i>=b;i--)using namespace std;const int N=5500,maxlongint=2147483640;int read(int &n){ char ch=' ';int q=0,w=1; for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar()); if(ch=='-')w=-1,ch=getchar(); for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;}int m,n,ans;struct qqww{int v,w;}a[N];int f[N][N],g[N];bool PX(qqww q,qqww w){return q.w>w.w;}int main(){ int q,w; read(n); fo(i,1,n)read(a[i].v),read(a[i].w); sort(a+1,a+1+n,PX); fo(i,1,n) { f[i][1]=a[i].v; fod(j,n,1) if(f[i][j+1]<g[j]+a[i].v-a[i].w*j) { f[i][j+1]=g[j]+a[i].v-a[i].w*j; g[j+1]=max(g[j+1],f[i][j+1]); } g[1]=max(g[1],a[i].v); } fo(i,1,n)ans=max(ans,g[i]); printf("%d\n",ans); return 0;}
0 0
- 【JZOJ 4710】Value
- 【JZOJ 4710】 Value
- JZOJ.4710【NOIP2016提高A组模拟8.17】Value
- JZOJ 4710 Value【NOIP2016提高A组模拟8.17】
- [JZOJ 4710]【NOIP2016提高A组模拟8.17】Value
- jzoj 4710. 【NOIP2016提高A组模拟8.17】Value 贪心+动态规划
- value
- value
- @Value
- Value
- Value
- Value
- Value
- Value
- value &#
- Value
- @Value
- [JZOJ 3424] 粉刷匠 && [JZOJ 4254] 集体照
- 多个线程执行多个任务,解决该问题的死锁问题
- Ubuntu下Crtmp服务器的搭建及过程中遇到的问题解决方法
- xml四种解析技术 简述 优缺点
- 一台机器上安装两个tomcat
- NandFlash和NorFlash的区别
- 【JZOJ 4710】Value
- 【docker】docker在ubuntu中的安装与部署
- Unity中使用ulua的个人经验总结
- 杂记1:android广播监听实时监听网络,以及回调机制应用
- Qt 绑定本机的ip
- Java BlockingQueue
- 前端入坑,先入了React坑
- Android studio 进行Java开发中文乱码问题
- android MVP模式 个人思考