Codeforces Round #206 (Div. 2) C - Vasya and Robot
2013-10-14 02:54
423 查看
由于后台初始数据的弱,没有经验这个还是很坑的。。。
1.特判1没考虑
2.漏掉了极端情况
3.没有处理前缀和TLE
4.起初考虑时方向偏了,不是dp
1.特判1没考虑
2.漏掉了极端情况
3.没有处理前缀和TLE
4.起初考虑时方向偏了,不是dp
#include <iostream> #include <vector> #include <stack> #include <cstring> #include <cmath> #include <cstdlib> #include <map> #include <queue> #include <set> #include <cstdio> #include <algorithm> using namespace std; /* define */ #define sf(a) scanf("%d",&a) #define sfs(a) scanf("%s",a) #define sfI(a) scanf("%I64d",&a) #define pf(a) printf("%d\n",a) #define pfI(a) printf("%I64d\n",a) #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define clr(a) memset(a,0,sizeof(a)) /* define */ typedef long long ll; const int N = 150000; const ll inf = (ll)1<<50; int n,l,r,Ql,Qr; int w ,sum ; ll sol(int x){ ll ans=0; int _ll=x,rr=n-x; ans+=(ll)sum[_ll]*l; ans+=(ll)(sum -sum[x])*r; if(rr>_ll) ans+=(ll)(rr-_ll-1)*Qr; else if(rr<_ll) ans+=(ll)(_ll-rr-1)*Ql; return ans; } int main(){ while(~scanf("%d%d%d%d%d",&n,&l,&r,&Ql,&Qr)){ rep(i,1,n) sf(w[i]); if(n==1){ printf("%I64d\n",min((ll)w[1]*r,(ll)w[1]*l)); continue; } clr(sum); rep(i,1,n) sum[i]=sum[i-1]+w[i]; ll ans=inf; rep(i,0,n){ ans=min(ans,sol(i)); } pfI(ans); } }
相关文章推荐
- 为什么我们不能坚持到底?
- nVIDIA显卡命名规律
- 人才成长有其自身的规律
- HDU 1005 Number Sequence
- hdu 4519
- poj 3467
- UVA - 11489 Integer Game
- hdu 1237 简单计算器(表达式求值)
- hdu 4121 Xiangqi
- Codeforces Round #205 (Div. 2) B. Two Heaps
- HDOJ1517[K(2~9)倍博弈][有规律存在]
- POJ2484(水博弈)
- ZOJ 2686(规律博弈)
- HDU 4642 多校四-1011
- Number Sequence_hdu_1005(规律)
- csuoj1303(将循环小数转化为分数)
- HDU 4371 Minimum palindrome 解题报告(找规律)
- hdu2524 矩形A + B
- iPhone开发重构:从硬编码到模型到规律 推荐
- 设计师眼中的透视学