3 条题解
-
0
也可反向记录
#include<bits/stdc++.h> using namespace std; int yuan[201],f[201],qian[201],n,x,y,k=0,shu; bool lu[201][201]; void pr(int n){ if(!n)return; pr(qian[n]); cout<<n<<"-"; return; } int main(){ cin>>n; for(int i=1;i<=n;i++){cin>>yuan[i];f[i]=yuan[i];} do{cin>>x>>y; lu[y][x]=true; }while(x&&y); for(int i=2;i<=n;i++) for(int o=1;o<i;o++) if(lu[i][o]==1&&yuan[i]+f[o]>f[i]){f[i]=yuan[i]+f[o];qian[i]=o;} for(int i=1;i<=n;i++) if(k<f[i]){k=f[i];shu=i;} pr(qian[shu]); cout<<shu<<endl<<f[shu]; return 0; }
信息
- ID
- 552
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 31
- 已通过
- 13
- 上传者