P3089 [USACO13NOV] Pogo-Cow S
1.[ABC363G] Dynamic Scheduling 与 P4511 [CTSC2015] 日程管理2.P9058 [Ynoi2004] rpmtdq 与 P9678 [ICPC2022 Jinan R] Tree Distance3.P1081 [NOIP2012 提高组] 开车旅行4.P1973 [NOI2011] NOI 嘉年华5.P1398 [NOI2013] 书法家6.P3957 [NOIP2017 普及组] 跳房子7.P5017 [NOIP2018 普及组] 摆渡车8.P5665 [CSP-S2019] 划分9.P4544 [USACO10NOV] Buying Feed G
10.P3089 [USACO13NOV] Pogo-Cow S
11.P3572 [POI2014] PTA-Little Bird12.P6764 [APIO2020] 粉刷墙壁13.P2831 [NOIP2016 提高组] 愤怒的小鸟14.P3959 [NOIP2017 提高组] 宝藏15.P2150 [NOI2015] 寿司晚宴16.P8037 [COCI2015-2016#7] Prokletnik17.CF1943C Tree Compass18.P1084 [NOIP2012 提高组] 疫情控制19.P6805 [CEOI2020] 春季大扫除20.P4689 [Ynoi2016] 这是我自己的发明 与 P5268 [SNOI2017] 一个简单的询问021.CF1264D1/2 Beautiful Bracket Sequence (easy/hard version)22.CF924D Contact ATC23.P9640 [SNCPC2019] Digit Mode24.P2757 [国家集训队] 等差子序列 与 CF452F Permutation25.P4423 [BJWC2011] 最小三角形 与 SP7209 CLOSEST - Closest Triplet26.P2825 [HEOI2016/TJOI2016] 游戏 与 P10945 Place the Robots27.P8304 [CoE R4 D] 01 串28.P3320 [SDOI2015] 寻宝游戏 与 P10930 异象石 与 CF176E Archaeology29.P9108 [PA2020] Malowanie płotu30.CF773D Perishable Roads思路:
首先要先将目标点按照坐标从小到大排序。
考虑动态规划算法,定义
朴素实现是 但是数据过水,可以冲过去。
考虑优化,注意一下
时间复杂度为
注意还可以往左走,状态方程类似,就不多说了。
完整代码:
#include<bits/stdc++.h> #define Add(x,y) (x+y>=mod)?(x+y-mod):(x+y) #define lowbit(x) x&(-x) #define pi pair<ll,ll> #define pii pair<ll,pair<ll,ll>> #define iip pair<pair<ll,ll>,ll> #define ppii pair<pair<ll,ll>,pair<ll,ll>> #define fi first #define se second #define full(l,r,x) for(auto it=l;it!=r;it++) (*it)=x #define Full(a) memset(a,0,sizeof(a)) #define open(s1,s2) freopen(s1,"r",stdin),freopen(s2,"w",stdout); using namespace std; typedef double db; typedef unsigned long long ull; typedef long long ll; bool Begin; const ll N=1010; inline ll read(){ ll x=0,f=1; char c=getchar(); while(c<'0'||c>'9'){ if(c=='-') f=-1; c=getchar(); } while(c>='0'&&c<='9'){ x=(x<<1)+(x<<3)+(c^48); c=getchar(); } return x*f; } inline void write(ll x){ if(x<0){ putchar('-'); x=-x; } if(x>9) write(x/10); putchar(x%10+'0'); } struct Node{ ll x,w; bool operator<(const Node&rhs)const{ return x<rhs.x; } }A[N]; ll n,ans,s; ll a[N],b[N]; ll f[N][N],g[N][N]; bool End; int main(){ n=read(); for(int i=1;i<=n;i++) A[i]={read(),read()}; sort(A+1,A+n+1); for(int i=1;i<=n;i++){ a[i]=A[i].x; b[i]=A[i].w; } for(int i=1;i<=n;i++) f[n][i]=b[n]; for(int i=n-1;i>=1;i--){ ll Max=0; for(int k=n,j=1;j<=i;j++){ while(a[k]>=2ll*a[i]-a[j]&&k>=i+1){ Max=max(Max,f[k][i]); k--; } f[i][j]=Max+b[i]; } } g[1][1]=b[1]; for(int i=1;i<=n;i++){ ll Max=0; for(int j=1,k=n;k>=i+1;k--){ while(a[j]<=2ll*a[i]-a[k]&&j<i){ Max=max(Max,g[i][j]); j++; } g[k][i]=max({g[k][i],b[i]+b[k],Max+b[k]}); } } for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) ans=max({ans,f[i][j],g[i][j]}); write(ans); cerr<<'\n'<<abs(&Begin-&End)/1048576<<"MB"; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现