爆搜可以 优化不!!

P1315 [NOIP2011 提高组] 观光公交

@[ZMH666](/space/show?uid=67342) 希望更丰富的展现?使用Markdown
by StudyingFather @ 2019-01-28 20:37:53


希望更丰富的展现?使用Markdown
by dead_X @ 2019-01-28 20:38:05


``` 把代码复制到这里 ```
by dead_X @ 2019-01-28 20:38:56


#include<bits/stdc++.h> using namespace std; struct node{ int ai,fi,ti; node(int a=0,int b=0,int c=0):ai(a),fi(b),ti(c){} }arr[10005]; int cost[10005]; int tai[10005],arrive[10005]; int n,m,k,ai,fi,ti; int ans=1e7; void heihei(){ int tt=tai[1],pp=0; for(int i=2;i<=n;i++){ tt+=cost[i-1]; arrive[i]=tt; if(tt<tai[i]) tt=tai[i]; } for(int i=1;i<=m;i++){//小心 别写成n 就只有 8分了!! 细心!! pp+=arrive[arr[i].ti]-arr[i].ai; } ans=min(ans,pp); } void dfs(int nown,int u){ if(u>k) return; if(nown==n){ if(u==k) heihei(); return; } for(int i=0;i<=k;i++){ if(cost[nown]-i>=0){ cost[nown]-=i; dfs(nown+1,u+i); cost[nown]+=i; } } } int main(){ // freopen("bus.in","r",stdin); // freopen("bus.out","w",stdout); cin>>n>>m>>k; for(int i=1;i<n;i++){ cin>>cost[i]; } for(int i=1;i<=m;i++){ cin>>ai>>fi>>ti; tai[fi]=max(ai,tai[fi]); arr[i]=node(ai,fi,ti); } dfs(1,0);// cout<<ans<<endl; fclose(stdin); fclose(stdout); return 0; }
by ZMH666 @ 2019-01-28 20:39:33


先打三个``` 就是这样 然后ctrl+v完再打三个
by dead_X @ 2019-01-28 20:39:42


# [点我](https://www.baidu.com/s?wd=markdown&rsv_spt=1&rsv_iqid=0xf144b0d50004d289&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=7&rsv_sug1=7&rsv_sug7=100)
by dead_X @ 2019-01-28 20:40:28


``` #include<bits/stdc++.h> using namespace std; struct node{ int ai,fi,ti; node(int a=0,int b=0,int c=0):ai(a),fi(b),ti(c){} }arr[10005]; int cost[10005]; int tai[10005],arrive[10005]; int n,m,k,ai,fi,ti; int ans=1e7; void heihei(){ int tt=tai[1],pp=0; for(int i=2;i<=n;i++){ tt+=cost[i-1]; arrive[i]=tt; if(tt<tai[i]) tt=tai[i]; } for(int i=1;i<=m;i++){//小心 别写成n 就只有 8分了!! 细心!! pp+=arrive[arr[i].ti]-arr[i].ai; } ans=min(ans,pp); } void dfs(int nown,int u){ if(u>k) return; if(nown==n){ if(u==k) heihei(); return; } for(int i=0;i<=k;i++){ if(cost[nown]-i>=0){ cost[nown]-=i; dfs(nown+1,u+i); cost[nown]+=i; } } } int main(){ // freopen("bus.in","r",stdin); // freopen("bus.out","w",stdout); cin>>n>>m>>k; for(int i=1;i<n;i++){ cin>>cost[i]; } for(int i=1;i<=m;i++){ cin>>ai>>fi>>ti; tai[fi]=max(ai,tai[fi]); arr[i]=node(ai,fi,ti); } dfs(1,0);// cout<<ans<<endl; fclose(stdin); fclose(stdout); return 0; } ```
by ZMH666 @ 2019-01-28 20:42:24


~~量子计算机优化暴力~~
by lemir3 @ 2019-01-28 20:46:37


[lxl巨佬的常数优化](https://www.luogu.org/blog/user3296/oi-zhong-jian-dan-di-chang-shuo-you-hua) 建议放弃暴力
by wangzhifang @ 2019-03-21 19:15:30


|