[FZYZOJ 2106] 备份数据

P2106 -- 备份数据

时间限制:250MS

内存限制:1024KB

Description

其实,在PXT想办法逃出机房的时候,CJK已经知道了事情的经过。整个一中的所有服务器受到了黑客的攻击,这些黑客的目的很明显——毁掉所有的成绩数据。如果成绩丢失,所有学生将会面临在寒假重新参加所有科目的考试!那将是多大的损失!看着座位旁堆得高高的书本,CJK决定拼尽全力,将数据备份下来。

风,轻轻地略过总控制室,带着沙沙的令人有一丝寒意的雨丝。光是服务器,就有50万台,每一台都存着几百G的数据……CJK不敢想了。如何把这些数据备份起来呢?

突然,他眼角瞥到一个小相框——那是他的好基友X。他们曾经无话不谈,可现在却天各一方……CJK将相框反过来,他惊奇的发现——相框的背面写着的,竟是他们以前上课无聊时,随口谈起的数据备份法。而X,竟然把它具体化了——CJK不禁泪流满面……

根据X的理论体系,把N台服务器构成树形结构,每一台服务器都有一个“父亲”和一个“数据关键字”。每个服务器的数据关键字由数据经过很强的压缩得到,都在2^32以内。当CJK执行“备份”指令的时候,从距离CJK(0号服务器)最远的服务器开始,每一台服务器通过“推送操作”:将父亲的数据关键字加上自己的数据关键字,来完成数据传输,将自己的数据移动到父亲服务器。也就是说,这是这样的一个操作:

Data[Father[i]] += Data[i];

当然,一台服务器只有自己的儿子都推送完成,才能向自己的父亲推送,所以是按照深度从大到小的顺序推送。这样一层一层上去,最后数据会汇总到CJK的服务器(编号为0,数据关键字初始为0)里。由于绝妙的压缩方式,那几千几万的数据变为一个小小的整数,一中有救了!CJK需要这个数据对2^32取模(求余)的结果,他只需要用这个数就能恢复出所有数据。

突然,CJK发现自己不能动弹了。黑客已经趁CJK陷入回忆的那一瞬间,将CJK控制锁定。时间和内存都所剩无几,CJK希望你能帮他完成这项艰巨的任务。

让我们帮助CJK,一起备份数据,解放寒假!

Input Format

第一行一个整数N,表示N台服务器。

下面N行,每行N个整数,第i行表示编号为i的服务器。

每一行两个整数,分别表示第i个服务器的父亲和数据关键字。

Output Format

一个整数,表示CJK需要的数字。

Sample Input

1
0 0

Sample Output

0

Hint

40:N <= 100

100: N <= 500 000

【题解】其实嘛,就是把所有的数据加在一起而已

而且发现数据规模非常小,没必要取模。

于是很快AC了。。。

1 #include<bits/stdc++.h>
2 using namespace std;
3 int main() {
4     int a,b,c=0;
5     scanf("%d",&a);
6     while(a--) {scanf("%*d%d",&b);c+=b;}
7     printf("%u\n",c);
8     return 0;
9 }

时间: 2024-11-04 10:07:07

[FZYZOJ 2106] 备份数据的相关文章

Linux-6.5下 MariaDB-10基于LVM快照的备份数据 详解

理解部分: LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.LVM可以对分区在线扩容,快照,镜像和条带化,功能非常强大.这篇文章的主题就是其中一个功能--快照. 快照(Snapshot)就是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像.快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品: 其实

Linux系统crond、rsync、打包备份数据操作实战

Linux系统crond.rsync.打包备份数据操作实战 前面介绍了系统中定时任务.rsync.打包等各种操作,同时也介绍了实际生产环境中的各类案例,今天我们结合这几种功能做一次实战(备份数据) 一:项目背景 某公司WEB服务器数据非常重要,但是如果硬件出现故障,数据就会丢失,人工备份比较费时费力,因些需要进行相关自动备份,并且要备份至指定的备份服务器上 具体备份内容有: 1.网站站点所有目录及相关文件 2.系统相关的配置文件 3.网站的访问日志文件 具体要求如下:(每天0点备份) 1.WEB

Windows使用robocopy、forfiles备份数据

事件描述: 2016.11.14一早,禅道(bug管理系统)启动不了了.经过一天各种折腾都不能正常启动服务,找到数据库目录和备份目录,都是空的.这是服务器在祝我31岁生日快乐吗,不带这么玩的. 下图为正常状态 下图为启动失败状态 自身存在的问题: 由于心里一直没把禅道放在心上,服务器的备份策略从来没有检查过.也没做过"灾难恢复"的测试.以至于出了问题后才想着去了解这个系统,看官方文档,找数据库目录等. 到现在为止也不知道系统是为什么挂的,挂的同时,数据库文件一点影也没了.只能让测试重新

Oracle数据库备份数据缺失的问题

项目中一直在使用Oracle数据库,由于我之前更多的是关注ORM映射框架,几乎没有关注过Oracle特性的东西,很多东西都不知道,而且项目中换数据库的概率几乎为零,所以有必要好好研究一下Oracle.正所谓,不怕不知道,就怕不知道嘛.不然遇到问题,都不知道从哪里下手. 这两天的Oracle学习,收获不小.前几天测试中遇到很多的稀奇古怪的问题,都被很好的解释了.这里就一个典型的例子谈一谈. 就是在测试阶段,看着经理熟练的操作Oracle的各个指令,内心就已经有了一点不平静.经理就是经理,这都是多少

mysql数据库种类介绍及 mysqldump备份数据

一  Nosql 指的是非关系型数据库,作为传统关系型数据库的一个有效补充,针对特定场景.以高性能和使用便利为目一 的功能特异化的数据库产品 Nosql特点: Noosql数据库存储不需要固定的表结构 1 他不是否定关系数据库,而是作为关系数据库的一个重要补充 2 Nosql为了高性能高并发而产生的 3 Nosql典型产品memcache(纯内存) 一重启就丢数据 redis(持久化缓存)  持久化缓存 mongodb 二  非关系型数据库种类: 1 键值存储数据库 2 列存储数据库 3 面向文

Vbs 清理备份数据-保留数据量

我们前面文章介绍了,通过vbs脚本对文件进行压缩备份,但是通过计划任务备份的话,备份的数据会越来越多,对于我们的磁盘空间利用来说比较浪费,所以我们又通过以下 脚本进行判断,将多余的备份数据清理, 我们需要将D盘下的backup目录下的备份数据只保留3份,其他的删除. 备份数据脚本见上一篇文章. Set dic = CreateObject("scripting.dictionary") set fso=CreateObject("Scripting.FileSystemObj

怎么恢复用mysqldump备份数据和恢复数据

1.备份: 写一个脚本: !/bin/bash` echo 'dump begin' Now=$(date +%d-%m-%Y--%H:%M:%S) //获取当前时间 File=backup-$Now.sql.gz //组成文件名 mysqldump -u zc_test -pzc_test2016 -h test.rtdream.com --port 3307 --all-databases --single-transaction --routines --add-drop-table --

完全备份数据和差异备份数据的shell脚本

#!/bin/bash  # # Description: 该脚本功能,以周为单位循环:周五实行完全备份,周六不备份,周日至周四实行差异备份: #              因工作需要,不实行压缩打包的方式,采用cp完全备份,rsync差异备份: #              若要使用该脚本,请直接修改下面的两个参数:BackupPath和DATAPath,其他地方请不要修改: #  DATE: 2017-04-24 22:43:00 # MODIFY DATE: 2017-04-28 10:0

SQL SERVER 2008 R2 自动备份并删除过期备份数据

    我们的系统维护的过程中肯定需要对数据库进行定期的备份,但是如果定时手工备份的话,不但浪费时间,也不能保证每次都可以按时备份,所以自动备份成为了我们的不二选择,但是定时备份需要定期清理备份文件,不然会因为磁盘空间不足导致备份失败,失去备份的准确性,下面我们就一步步来看一下如果自动备份并删除过期备份数据. 1.打开SQL SERVER 2008 R2,连上数据库,右键选择[管理]-[维护计划]-[维护计划向导]. 2. 在名称中为维护计划取一个通俗易懂的名字,例如"EveryDayBak&q