大家好,欢迎来到IT知识分享网。
#include<iostream> #include<vector> #include<cstdio> #include<algorithm> using namespace std; int n,m,s; vector<int>ans,temp; bool visit[110]={false}; struct node { int data; vector<int>child; }Node[110]; bool cmp(int a,int b) { return Node[a].data>Node[b].data; } void DFS(int number,int totalweight,int index) { if(totalweight>s)return; if(totalweight==s) { if(Node[number].child.size()!=0) return; ans=temp; for(int i=0;i<index;i++) { cout<<ans[i]; if(i!=index-1)cout<<" "; } cout<<endl; return; } for(int i=0;i<Node[number].child.size();i++) { int next=Node[number].child[i]; temp.push_back(Node[next].data); DFS(next,totalweight+Node[next].data,index+1); temp.pop_back(); } } int main() { cin>>n>>m>>s; for(int i=0;i<n;i++) cin>>Node[i].data; for(int i=0;i<m;i++) { int t,num,chl; scanf("%d%d",&t,&num); for(int j=0;j<num;j++) { scanf("%d",&chl); Node[t].child.push_back(chl); } sort(Node[t].child.begin(),Node[t].child.end(),cmp); } temp.push_back(Node[0].data); DFS(0,Node[0].data,1); return 0; }
测试点6改来改去一直不通过,望各位大神不吝赐教
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/148399.html