C:

*可以保留删除或者增加

? 保留或者删除

#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    int k,len;
    cin>>s>>k;
    ;
    len = s.size();
    ;j<len;j++){
        if(isalpha(s[j])) sumx++;
        else sumx--;
    }
    if(sumx>k){
        cout<<"Impossible"<<endl;
    }else{
       string ans = "";
       int sum = k-sumx;
       ;j<len-;j++){
          ])){
             ans+=s[j];
          }else{
             ] == '?'){
                if(sum){
                   sum--;
                   ans+=s[j];
                }
             }] == '*'){
                while(sum){
                    sum--;
                    ans+=s[j];
                }
             }
          }
       }
       ])){
          ans+=s[len-];
       }
       if(ans.size()==k) cout<<ans<<endl;
       else{
         cout<<"Impossible"<<endl;
       }
    }
    ;
}

D:

把深度为偶数的节点隐藏掉(-1) 给出每个节点的父亲以及这个点到 根部的 value值总和 包括自己在内  求这棵树最小的value总和

#include<bits/stdc++.h>
using namespace std;
#define maxn 100005
#define inf 99999999999999
#define LL long long
#define debug(x) cout<<x<<endl
vector<LL>q[maxn];
LL a[maxn],ans[maxn],va=;
;
void dfs(LL u,LL fa,LL deep){
   ==){
      LL mi = inf;
      ;j<q[u].size();j++){
         mi = min(mi,a[q[u][j]]);
      }
      if(mi==inf){
         ans[u] = ;
         a[u] = a[fa];
      }else{
         a[u] = mi;
         ans[u] = a[u] - a[fa];
      }
   }else{
      ){
         ans[u] = a[u] - a[fa];
      }
   }
   ;j<q[u].size();j++){
      int v = q[u][j];
      dfs(v,u,deep+);
   }
}
int main(){
    LL n;
    scanf("%lld",&n);
    ;j<=n;j++){
        LL x;
        scanf("%d",&x);
        q[x].push_back(j);
    }
    ;j<=n;j++){
        scanf("%lld",&a[j]);
    }
    ans[]=a[];
    dfs(,,);
    ;j<=n;j++){
        va+=ans[j];
        //cout<<ans[j]<<endl;
        ){
            cout<<"-1"<<endl;
            ;
        }
    }
    cout<<va<<endl;
}

Codeforces Round #530 (Div. 2) C D的更多相关文章

  1. Codeforces Round #530 (Div. 2) F (树形dp+线段树)

    F. Cookies 链接:http://codeforces.com/contest/1099/problem/F 题意: 给你一棵树,树上有n个节点,每个节点上有ai块饼干,在这个节点上的每块饼干 ...

  2. Codeforces Round #530 (Div. 2) A,B,C,D

    A. Snowball 链接:http://codeforces.com/contest/1099/problem/A 思路:模拟 代码: #include<bits/stdc++.h> ...

  3. Codeforces Round #530 (Div. 2):D. Sum in the tree (题解)

    D. Sum in the tree 题目链接:https://codeforces.com/contest/1099/problem/D 题意: 给出一棵树,以及每个点的si,这里的si代表从i号结 ...

  4. Codeforces Round #530 (Div. 2) F 线段树 + 树形dp(自下往上)

    https://codeforces.com/contest/1099/problem/F 题意 一颗n个节点的树上,每个点都有\(x[i]\)个饼干,然后在i节点上吃一个饼干的时间是\(t[i]\) ...

  5. Codeforces Round #530 (Div. 2)F Cookies (树形dp+线段树)

    题:https://codeforces.com/contest/1099/problem/F 题意:给定一个树,每个节点有俩个信息x和t,分别表示这个节点上的饼干个数和先手吃掉这个节点上一个饼干的的 ...

  6. Codeforces Round #530 (Div. 2)

    RANK :2252 题数 :3 补题: D - Sum in the tree 思路:贪心 把权值放在祖先节点上 ,预处理 每个节点保存 他与他儿子中 权值最小值即可. 最后会有一些叶子节点依旧为 ...

  7. Codeforces Round #530 Div. 1 自闭记

    A:显然应该让未确定的大小尽量大.不知道写了啥就wa了一发. #include<iostream> #include<cstdio> #include<cmath> ...

  8. Codeforces Round #530 (Div. 2) F - Cookies

    F - Cookies 思路:我们先考虑如何算出在每个节点结束最多能吃多少饼干, 这个dfs的时候用线段树维护一下就好了, 然后有个这个信息之后树上小dp一下就好啦. #include<bits ...

  9. Codeforces Round #530 (Div. 1)

    A - Sum in the tree 就是贪心选尽量让上面的点权尽量大,那么对于偶数层的点,其到根节点的和即为所有儿子中的最大值. #include<bits/stdc++.h> usi ...

随机推荐

  1. MUI 实用教程

    MUI 实用JS教程: https://www.kancloud.cn/benhailong/mui/319751  MUI 实用教程: https://www.kancloud.cn/benhail ...

  2. .net DLL版本管理

    每个DLL打上版本号,方便识别维护

  3. c/c++ 多线程 等待一次性事件 异常处理

    多线程 等待一次性事件 异常处理 背景:假设某个future在等待另一个线程结束,但是在被future等待的线程里发生了异常(throw一个异常A),这时怎么处理. 结果:假设发生了上面的场景,则在调 ...

  4. c/c++ 网络编程 UDP 改变网卡的硬件地址

    网络编程 UDP 改变网卡的硬件地址 在程序里动态改变网卡的硬件地址 1,取得网卡的硬件地址 #include <stdio.h> #include <string.h> #i ...

  5. UITableView编辑模式大全解

    1.UITableView 的编辑模式 进入编辑模式 代码体现 // 设置 editing 属性 tableView?.editing = true // 这个设置的时候是有动画效果的 tableVi ...

  6. InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised.解决办法

    最近使用requests进行get请求的时候,控制台输出如下错误. InsecureRequestWarning: Unverified HTTPS request is being made. Ad ...

  7. go语言学习-常用命令(四)

    go常用命令 go get:获取远程包(得装git) go run:直接运行程序(写代码时调试用) go build:测试编译,检查是否有编译错误 go fmt:格式化代码(一般不咋用,IDE都自带了 ...

  8. android开发学习 ------- 关于getSupportFragmentManager()不可用的问题

    在Android开发中,少不了Fragment的运用. 目前在实际运用中,有v-4包下支持的Fragment以及app包下的Fragment,这两个包下的FragmentManager获取方式有点区别 ...

  9. ios自动打包-fastlane 安装、使用、更新和卸载

    ios自动打包使用fastlane 1.首先安装xcode 首先检查是否已经安装 Xcode 命令行工具,fastlane 使用 xcodebuild 命令进行打包,运行 xcode-select - ...

  10. Docker概述

    Docker概述 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器是完全可以使用沙盒机制,互 ...