sicily 4876. PLAĆE 每周一赛二

2024-03-06 09:08
文章标签 每周 sicily pla 4876 一赛

本文主要是介绍sicily 4876. PLAĆE 每周一赛二,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

树形结构转线性结构,先dfs,得到每一个结点的开始和结束访问时间s,t

记录一个数组A[1...t]

那么更新一个结点的就是A[s]+=v,A[t]-=v

采用树状数组做,OMlog2*N复杂度

#include<iostream>

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int N = 1001000;
int C[N];
int wage[N];
vector<int>  edge[N];
int st[N],ed[N];
int t = 1;
void dfs(int u){
st[u] = t++;
for(int i = 0;i<edge[u].size();i++){
dfs(edge[u][i]);
}
ed[u] = t++;
}
int lowbit(int x)//计算lowbit
{
    return x&(-x);
}
void add(int i,int val)//将第i个元素更改为val
{
    while(i<t)
    {
        C[i]+=val;
        i+=lowbit(i);
    }
}
int sum(int i)//求前i项和
{
    int s=0;
    while(i>0)
    {
        s+=C[i];
        i-=lowbit(i);
    }
    return s;
}
int main(){
int n,m;
scanf("%d%d",&n,&m);
scanf("%d",&wage[1]);
memset(C,0,sizeof(C));
int v;
for(int i = 2;i<=n;i++){
scanf("%d%d",&wage[i],&v);
edge[v].push_back(i);
}
dfs(1);
char str[10];
int u;
for(int i = 0;i<m;i++){
scanf("%s",str);
if(str[0]=='u'){
scanf("%d",&u);
int s = sum(st[u]-1);
printf("%d\n",wage[u]+s);
}else {
scanf("%d%d",&u,&v);
add(st[u],v);
add(ed[u],-v);
}
}
return 0;
}

这篇关于sicily 4876. PLAĆE 每周一赛二的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779527

相关文章

GitHub每周最火火火项目(9.2-9.8)

项目名称:polarsource / polar 项目介绍:polar 是一个开源项目,它是 Lemon Squeezy 的替代方案,并且具有更具优势的价格。该项目的目标是为开发者提供一种更好的选择,让他们能够在追求自己的热情和兴趣的同时,通过编码获得相应的报酬。通过使用 polar,开发者可以享受到更实惠的价格,同时也能够更自由地发挥自己的创造力和技能。 项目地址:https://github.

深度学习每周学习总结N9:transformer复现

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 目录 多头注意力机制前馈传播位置编码编码层解码层Transformer模型构建使用示例 本文为TR3学习打卡,为了保证记录顺序我这里写为N9 总结: 之前有学习过文本预处理的环节,对文本处理的主要方式有以下三种: 1:词袋模型(one-hot编码) 2:TF-I

【HDU】4876 ZCC loves cards 暴力

传送门:【HDU】4876 ZCC loves cards 题目分析: 这题无力吐嘈。。。。能想到的优化都用上吧。。。 代码如下: #include <cstdio>#include <cstring>#include <algorithm>using namespace std ;#define REP( i , n ) for ( int i =

每周12600元奖金池,邀你与昇腾算力共舞,openMind开发者盛宴启幕!

小伙伴们,是否瞬间被这个标题唤醒了在OpenI启智社区“我为开源打榜狂”黄金时代的温馨记忆?打榜活动虽已谢幕,但大家相伴度过12期的那份激情与创新的共鸣,促使OpenI启智社区在国产算力崛起的浪潮中勇立潮头,推出了“芯动开源”系列专场活动的新篇章。它不仅是挑战活动的迭代,更是开源精神的延续与升华。首期芯动开源-天数智芯专场活动在不久前圆满结束,而今聚光灯下,第二期专场活动的主角闪耀登场,它便是首

每周心赏|开学必备,学霸舍不得删除的AI提效神器

假期走得太快,就像龙卷风……我那么多天暑假呢?还我妈生暑假。 最近「开学综合症」在校园届蔓延,症状为失眠、嗜睡、记忆力下降、厌学、焦虑、食欲不振…… 千万别让这综合症影响了你的好心情,快来签收你的开学大礼包——三款AI学习工具,助你轻松迎接新学期的挑战!学习效率突飞猛进! 1 零基础学习路径规划 开发者:好想出去玩2020 不管你是刚刚踏入校门的小学生,还是即将面临大考的

GitHub每周最火火火项目(8.26-9.1)

项目名称:Cinnamon / kotaemon 项目介绍:kotaemon是一个基于开源RAG(检索增强生成)的工具,旨在实现与文档的聊天交互。它为用户提供了一种便捷的方式来与自己的文档进行对话,通过检索文档中的信息来回答用户的问题。这使得用户能够更高效地获取文档中的知识,提高信息检索和利用的效率。 项目地址:https://github.com/Cinnamon/kotaemon项目名称:fr

创业公司如何让程序员每周工作60至80个小时?

创业公司如何让程序员每周工作60至80个小时? 令人伤心的是,真有个人,真的提了这么个问题。 而且这还不是孤例。我知道还有很多的软件公司创始人喜欢这个话题,我觉得有必要给他们传递一个信息。 给所有你们这些认为“经理就是要给雇员排满活儿”的人: 亲爱的经理, 你错了。 你的雇员不是你的奴隶。 别再用胡萝卜加大棒的方案了。那是老一套。我们可跟那会儿不一样。 有更给力的

sicily 分类

原文出处:http://linguifan2010.blog.163.com/blog/static/1315127442010102131322482/ *************************程序设计题************************* *************************数据结构************************* sicily

排日程 某保密单位机要人员 A,B,C,D,E 每周需要工作5天,休息2天。

package org.bluebridge.topics;/** 排日程某保密单位机要人员 A,B,C,D,E 每周需要工作5天,休息2天。上级要求每个人每周的工作日和休息日安排必须是固定的,不能在周间变更。此外,由于工作需要,还有如下要求:1. 所有人的连续工作日不能多于3天(注意:周日连到下周一也是连续)。2. 一周中,至少有3天所有人都是上班的。3. 任何一天,必须保证 A B C D 中

每周一数据结构之链表(Kotlin描述)

一、链表的定义 链表是一种递归的数据结构,是一种线性结构,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer),简单来说链表并不像数组那样将数组存储在一个连续的内存地址空间里,它们可以不是连续的因为他们每个节点保存着下一个节点的引用(地址) 二、链表的类型 单链表 1、定义 单链表(又称单向链表)是链表中的一种,其特点是链表的链接方向是单向的,对链表