求助!
  • 板块P1220 关路灯
  • 楼主沉鸣cmh
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/7/1 14:25
  • 上次更新2023/11/4 20:28:50
查看原帖
求助!
334041
沉鸣cmh楼主2021/7/1 14:25

只有50,WA了5个点。找不到错

#include<bits/stdc++.h>
using namespace std;
int n,c,zz,yy,t,su[10005][55][55];
struct p{
	int w,g;
}a[55];
int dfs(int wz,int z,int y){int th=1e9;
	if(su[wz][z][y])return su[wz][z][y];if(z==0&&y==0)return 0;
	if(z>0)t+=abs(wz-a[z].w),th=min(th,dfs(a[z].w,z-1,y)+t*a[z].g),t-=abs(wz-a[z].w);
	if(y>0)t+=abs(wz-a[n-y+1].w),th=min(th,dfs(a[n-y+1].w,z,y-1)+t*a[n-y+1].g),t-=abs(wz-a[n-y+1].w);
	return su[wz][z][y]=th;
}
int main(){
	cin>>n>>c;for(int i=1;i<=n;i++)cin>>a[i].w>>a[i].g;
	for(int i=1;i<=n;i++){if(a[i].w<a[c].w)zz++;if(a[i].w>a[c].w)yy++;}
	cout<<dfs(a[c].w,zz,yy);
	return 0;
}
2021/7/1 14:25
加载中...