8.11 div3+牛客暑期多校8

本文讲述了配对算法、树结构操作、无向图分析等技术在解决编程问题中的应用,是算法竞赛和学习者的实用参考。
摘要由CSDN通过智能技术生成

div3

Sasha and Array Coloring

要想值最大:
只要能配成对,值就会增加 ans+(配对值)

Long Long

1.找到第一个为负数的位置和最后一个为负数的位置,中间的正数的段数必定小于该范围内负数的段数 负数段是由正数段隔开的
2.计算所有的负数的段数,直接翻转就是答案 最后的负数段数记得算上
即遇到正数 如果前面有负数ans++ flag=false

Sum in Binary Tree

很简单 先求他在第几层,之后循环加上父节点的值即可
*不管他是偶数还是奇数 直接除2就是对应的父节点值

Apple Tree

就是拓扑排序(邻接表建图)  要求从一个结点能走到多少个叶子节点上
1.怎样防止无向图在判断邻接点时重复将已经剔除的点再加进来:
  开数组st[N],将pop出去的数据赋值为true,在判断i=h[tmp]时如果st=true直接continue
由于边的信息并不是按照开始和结束给出的  所以必须用无向图建图 即边*2
2.对于顶点特殊处理   
在进队时就从2开始 判断d[i]是否为1(无向图建图,终点和起点不知 均++ 如果是叶子节点则d[i]==1 除了根节点外)

牛客暑期多校

Alive Fossils

vector<string,int> ss;
for(auto iter=mp.begin();iter!=mp.end();iter++){
    if(iter->second==p){
        cnt++;
        ss.push_back(iter->first);
    }
}
cout<<cnt<<endl;
for(int i=0;i<cnt;i++) cout<<ss[i]<<endl;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值