红字差评系列2.dwarf
Posted 【Lemon】
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了红字差评系列2.dwarf相关的知识,希望对你有一定的参考价值。
【题目分析】
首先按照题目给出的样例想到只要每个物品的价格都用能够合成他的两个物品来更新,一边读入一边更新就好了,后来又发现如果出现这样的情况:1 2 3在2 5 6 的前面,那我们就需要先更新2在更新1.对吧就这样我就用了dfs然后完美爆栈75分,当然在这之前我还考虑到了如果一个物品可以被多个物品更新的话,那我们就是用边表记录下来,找每一组,但并没有实现(边表的孩子也是75hh),南城甚至建了棵树。但AC的同学是这么做(作)的,读入的时候更新一遍,读完了再倒回来更新一遍....为什么!!!(数据水)
#include <cstdio> #include <cstring> #include <iostream> using namespace std; #define ll long long const int maxn=20010; int n,m; ll c[maxn]; int a[maxn],x[maxn],y[maxn]; int pos; int f[maxn][5]; ll ans; ll search(int aa,int xx,int yy) { if(xx==0&&yy==0) return c[aa]; return min(c[aa],search(xx,f[xx][1],f[xx][2])+search(yy,f[yy][1],f[yy][2])); } int main() { freopen("dwarf.in","r",stdin); freopen("dwarf.out","w",stdout); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&c[i]); for(int i=1;i<=m;i++) { int a,x,y; scanf("%d%d%d",&a,&x,&y); f[a][1]=x;f[a][2]=y; } cout<<search(1,f[1][1],f[1][2]); fclose(stdin);fclose(stdout); return 0; }
以上是关于红字差评系列2.dwarf的主要内容,如果未能解决你的问题,请参考以下文章
618大促将至,用AI挖掘差评,零代码实现亿级评论观点情感分析
全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段