URAL 2030 Awesome Backup System
Awesome Backup System
Memory limit: 64 MB
- Copy all the information from computer v to all adjacent computers (i.e., to all computers directly connected to it by a cable) If computer v had xv bytes of information, then, after copying, all adjacent computers will have xv bytes of information more, while computer v will still have xv bytes of information.
- Output the current amount of information on computer v. Since this amount can grow very quickly, output the remainder of its division by the number 109 + 7.
For testing the ABS, you are asked to write a program for a quick processing of such requests.
Input
Output
Samples
| input | output |
|---|---|
4 |
1 |
2 |
1 |
对一棵树进行下列操作
1 v 将顶点v的邻接顶点的权值加上w[v]
2 v 查询顶点v的权值
哎,还是太弱了,这题不需要任何数据结构,只需要先将树转换成有根树,开一个标记数组add,add[v]表示给v的邻接顶点增加了add[v],在进行1操作的时候,直接将v的父亲加上v的权值,则查询的时候只有父亲对他有影响,加上父亲的add标记就行
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <string>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#define inf 0x3f3f3f3f
#define met(a,b) memset(a,b,sizeof a
#define pb push_back
typedef long long ll;
using namespace std;
const int N = 1e5+;
const int M = +;
const int mod=1e9+;
int n,m,k,tot=,s,t,r;
vector<int>G[N];
ll A[N],add[N]; int p[N];
void dfs(int u,int fa)
{
p[u]=fa;
for(int i=; i<G[u].size(); i++)
{
int &v=G[u][i];
if(v!=fa&&v!=u)
{
dfs(v,u);
}
}
}
int main()
{
int n,m;
cin>>n;
for(int i=;i<=n;i++)cin>>A[i];
int u,v;
for(int i=;i<n;i++)
{
cin>>u>>v;
G[u].pb(v);
G[v].pb(u);
}
cin>>m;
memset(add,,sizeof add);
memset(p,,sizeof p);
dfs(,);
while(m--)
{
cin>>u>>v;
int x=p[v];
if(u==)
{
add[v]=(add[v]+A[v]+add[x])%mod;
A[x]=(A[x]+A[v]+add[x])%mod;
}
else cout<<(A[v]+add[x])%mod<<endl;
}
return ;
}
URAL 2030 Awesome Backup System的更多相关文章
- 图解Android - Zygote, System Server 启动分析
Init 是所有Linux程序的起点,而Zygote于Android,正如它的英文意思,是所有java程序的'孵化池'(玩过星际虫族的兄弟都晓得的).用ps 输出可以看到 >adb shell ...
- 图解Android - System Service 概论 和 Android GUI 系统
通过 图解Android - Binder 和 Service 一文中,我们已经分析了Binder 和 Service的工作原理.接下来,我们来简要分析Android 系统里面都有哪些重要的Servi ...
- VES Hand Book Contents
3...ABOUT THE VES4...Foreword 6...Chapter 1......Introduction6......Visual Effects and Special Effec ...
- malware analysis、Sandbox Principles、Design && Implementation
catalog . 引言 . sandbox introduction . Sandboxie . seccomp(short for secure computing mode): API级沙箱 . ...
- Azure SQL Database 时间点还原(Point in Time Restore)功能
微软中国TechNet 7 Oct 2014 9:17 PM Comments 0 Likes 原文地址:http://blogs.technet.com/b/azuretw/archive/20 ...
- Merkle Tree学习
/*最近在看Ethereum,其中一个重要的概念是Merkle Tree,以前从来没有听说过,所以查了些资料,学习了Merkle Tree的知识,因为接触时间不长,对Merkle Tree的理解也不是 ...
- Mac OS 终端常用命令【搜藏】
基础概念 OS X 采用的Unix文件系统,所有文件都挂在跟目录“ /” 下面,所以不在要有Windows 下的盘符概念.比如什么“C:”你在桌面上看到的硬盘都挂在 /Volumes 下.比如接上个叫 ...
- ubuntu mint 15 编译安装PHP开发环境
php 5.3.5(download zip) httpd 2.2.24(download zip) mysql: apt-get install mysql step 1: install mysq ...
- Facebook Architecture
Facebook Architecture Quora article a relatively old presentation on facebook architecture another I ...
随机推荐
- VS2013项目配置directx11
假定你已经安装好了direct11 SDK(官方下的既是最新版本)和VS2013,并在VS2013中建立了一个新工程. 用VS2013打开工程后,点击右键属性,选择VC++目录: 其中在包含目录中添加 ...
- Quartz之主方法运行
import static org.quartz.JobBuilder.newJob; import static org.quartz.TriggerBuilder.newTrigger; impo ...
- opencv 工程的保存
一个项目的保存,只要保存工程底下的.CPP .h .dll .lib 输入输出文件即可 最终保存的文件
- hdu 2098
ps:TLE一次....因为判断素数的时候没开方...作死.. 代码: #include "stdio.h" #include "math.h" int inp ...
- Ubuntu封装制作ISO镜像
首先下载Remastersys的Deb软件包 链接:http://pan.baidu.com/s/1i3tYPKT 密码: 使用命令强制安装 dpkg --force-all -i remasters ...
- Java三大主流开源工作流引擎技术分析
首先,这个评论是我从网上,书中,搜索和整理出来的,也许有技术点上的错误点,也许理解没那么深入.但是我是秉着学习的态度加以评论,学习,希望对大家有用,进入正题! 三大主流工作流引擎:Shark,oswo ...
- UVA821 floyd最短路+暴力
题意:给n条边,求每两个点之间的平均距离: 思路:数据是100条边,用floyd得到每两点之间的最短距离,然后遍历相加除以边的数目: #include <iostream> #includ ...
- IOS 作业项目(4)步步完成 画图 程序(中续)
一,程序布局整理 前言://1,程序启动//2,程序流程框架//3,程序界面一致//4,程序界面功能, //这里只做页面的固定功能, //在首次创建界面时,我们会指定好固定事件触发前的固定方法 //至 ...
- HDU5437 Alisha’s Party 优先队列
点击打开链接 可能出现的问题: 1.当门外人数不足p人时没有判断队列非空,导致RE. 2.在m次开门之后最后进来到一批人没有入队. 3.给定的开门时间可能是打乱的,需要进行排序. #include&l ...
- LeetCode Implement Stack using Queues (数据结构)
题意: 用队列来实现栈. 思路: 没有什么捷径,纯粹模拟.但是用一个队列就够了. class Stack { /* // Push element x onto stack. void push(in ...