团体程序设计天梯赛(L2-020 功夫传人 (25 分))

本文主要探讨了一道使用深度优先搜索(DFS)解决的优化问题。作者通过代码实现了一个DFS遍历算法,并尝试求解最优化问题。然而,在实际运行中只得到了部分正确结果,期待读者(尤其是算法专家)指出可能存在的问题和优化方向。代码中涉及了递归、权重传递和动态规划的概念。

题目:

 

思路分析:

一个dfs遍历搜索的题目暴力就行 

但是只拿了24分 不知道哪里有瑕疵!(望大佬指出

代码实现:

const int MAX=100100;
vector<int>v[MAX];
int t[MAX];
int n;
double k,z;
double ans;
double val[MAX];
void dfs(int u){
    if(t[u]) ans+=val[u];
    for(int i=0;i<v[u].size();i++){
        int ne=v[u][i];
        val[ne]=val[u]*z;
        
        if(t[ne]) val[ne]*=t[ne];
//        cout<<ne<<" = "<<val[ne]<<endl;
        dfs(ne);
    }
}
int main(){
    cin>>n>>k>>z;
    z=(100-z)/100.0;
//    cout<<z<<endl;
    for(int i=0;i<n;i++){
        int m;
        cin>>m;
        if(m==0){
            int x;
            cin>>x;
            t[i]=x;
        }
        else {
            while (m--) {
                i
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭晋龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值