NOIP模拟测试5「星际旅行·砍树·超级树」
星际旅行
0分
瞬间爆炸。
考试的时候觉得这个题怎么这么难,
打个dp,可以被儿子贡献,可以被父亲贡献,还有自环,叶子节点连边可以贡献,非叶子也可以贡献,自环可以跑一回,自环可以跑两回,
关键是同一子树会贡献,不同子树也会贡献。
这还不是欧拉图欧拉路问题,awsl
然后我就放弃了这个题
考完试看题解,tm一个大水题
虽然好像不算水,
思考两个点之间因为连接的是无向边,所以所有点入度出度都为2。
先不考虑自环
如果把两个点之间无向边拆成两个有向边,那么问题就变成去掉两个边使原图存在欧拉路。
于是乎,问题就变得很简单了
如果有自环
可以去掉两个自环,或者去掉一个自环和一个边
砍树
做砍树时问大佬说,“这是一个数论分块”模板题
我:???
原来只有我没学过数论分块吗?
https://www.cnblogs.com/0xfffe/p/9648943.html
略微理解了理解,写的非常清楚
你说这是向下取整,不是向上取整,砍树要向上取整,那篇博客不适用于砍树?
确实不适用
我们要分块的是等式右面的$\sum_{i}^{n} a[i] +k$除以d
因为C是固定的,所以这是一个分段函数,我们要处理的是不同的右面的值最后再跟左面对应
我们然后f存下这一段具体的值,
r存下具体右端点
然后就完了
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define A 11000000
ll l=1,r,n,m,a[A],dl[A],R[A],f[A],zz=0,num=0,ans=0,sum=0;
void precl()
{
while(1){
if(!(sum/l)) break;
r=sum/(sum/l);
f[++num]=sum/r;
R[num]=r;
l=r+1;
}
} int main(){
scanf("%lld%lld",&n,&m);
sum=m;
for(ll i=1;i<=n;i++){
scanf("%lld",&a[i]);
sum+=a[i];
}
precl();
for(ll j=1;j<=num;j++)
{
ll t=0;
for(ll i=1;i<=n;i++){
t+=ceil((double)a[i]/(double)R[j]);
}
// printf("f=%lld R=%lld\n",f[j],R[j]);
if(t<=f[j]) ans=R[j];
}
cout<<ans<<endl;
}
以下是我完全错误的解释
设$k\times i-p=N$ 向上取整设
$\large{\lceil \frac N{i+d} \rceil}=k$
于是$k\times (i+d)-p2=N$
同样得出p2=p+kd
就是照猫画虎的一个过程
底下我不具体推了,
$\large \left \lceil \frac N{\left \lfloor \frac Ni \right \rfloor } \right \rceil$
所以对砍树这道题来说,这确实是个模板题,分析发现这是一个分段函数,维护每一段大小相同,维护l,r下一个l=r+1
具体来说
$\large \left \lceil \frac {a[i]}{d} \right \rceil$不是为我们具体分块的值
$\large \lfloor \frac Ni \rfloor$才是
然后等式右面是$\sum_{i}^{n} a[i] +k$再除以d
这个N就是$\sum_{i}^{n} a[i] +k$
那么这个题就迎刃而解了。
超级树
等我AC了可怜与超市
NOIP模拟测试5「星际旅行·砍树·超级树」的更多相关文章
- NOIP模拟测试17「入阵曲·将军令·星空」
入阵曲 题解 应用了一种美妙移项思想, 我们先考虑在一维上的做法 维护前缀和$(sum[r]-sum[l-1])\%k==0$可以转化为 $sum[r]\% k==sum[l-1]\%k$开个桶维护一 ...
- NOIP模拟测试14「旋转子段·走格子·柱状图」
旋转子段 连60分都没想,考试一直肝t3,t2,没想到t1最简单 我一直以为t1很难,看了题解发现也就那样 题解 性质1 一个包含a[i]旋转区间值域范围最多为min(a[i],i)----max(a ...
- NOIP模拟测试11「string·matrix·big」
打的big出了点小问题,maxx初值我设的0然后少了10分 第二题暴力打炸 第一题剪了一些没用的枝依然40分 总分70 这是一次失败的考试 string 想到和序列那个题很像,但我没做序列,考场回忆学 ...
- NOIP模拟测试19「count·dinner·chess」
反思: 我考得最炸的一次 怎么说呢?简单的两个题0分,稍难(我还不敢说难,肯定又有人喷我)42分 前10分钟看T1,不会,觉得不可做,完全不可做,把它跳了 最后10分钟看T1,发现一个有点用的性质,仍 ...
- 20190803 NOIP模拟测试12「斐波那契(fibonacci)· 数颜色 · 分组 」
164分 rank11/64 这次考的不算太差,但是并没有多大的可能性反超(只比一小部分人高十几分而已),时间分配还是不均,T2两个半小时,T1半个小时,T3-额十几分钟吧 然额付出总是与回报成反比的 ...
- NOIP模拟测试10「大佬·辣鸡·模板」
大佬 显然假期望 我奇思妙想出了一个式子$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{k \times j}^{k}\times w[j]$ 然后一想不对得容 ...
- NOIP模拟测试38「金·斯诺·赤」
金 辗转相减见祖宗 高精 #include<bits/stdc++.h> using namespace std; #define A 2000 #define P 1 #define N ...
- NOIP模拟测试28「阴阳·虎·山洞」
写这几个题解我觉得我就像在按照官方题解抄一样 阴阳 题解 将题目中给的阴阳看作黑色和白色 首先我们观察到最后生成图中某种颜色必须是竖着单调递增或竖着单调递减 类似这样 否则不满足这个条件 但合法染色方 ...
- NOIP模拟测试30「return·one·magic」
magic 题解 首先原式指数肯定会爆$long$ $long$ 首先根据欧拉定理我们可以将原式换成$N^{\sum\limits_{i=1}^{i<=N} [gcd(i,N)==1] C_{G ...
随机推荐
- Python JWT 介绍
Python JWT 介绍 目录 Python JWT 介绍 1. JWT 介绍 2. JWT 创建 token 2.1 JWT 生成原理 2.2 JWT 校验 token 原理 3. 代码实现 4. ...
- Kafka源码分析(一) - 概述
系列文章目录 https://zhuanlan.zhihu.com/p/367683572 目录 系列文章目录 一. 实际问题 二. 什么是Kafka, 如何解决这些问题的 三. 基本原理 1. 基本 ...
- C异常处理和C++异常处理的对比
每一种编译器实现异常处理的方式会有所不同,但是都是基于Windows的SEH异常处理.这里以MSC编译器为例. C异常处理 #include <Windows.h> int main(in ...
- Masm32sdk安装指南
上一年学习win32汇编时用的masm32sdk不是最新版本的.因为最近准备继续学习win32汇编,所以准备安装最新的masm32sdk软件包.其中遇到了一些问题,从网上找了2个小时才搞定(宝宝心里苦 ...
- Nginx超详细常用功能演示,够用啦~~~
前言 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服 ...
- MySQL锁等待与死锁问题分析
前言: 在 MySQL 运维过程中,锁等待和死锁问题是令各位 DBA 及开发同学非常头痛的事.出现此类问题会造成业务回滚.卡顿等故障,特别是业务繁忙的系统,出现死锁问题后影响会更严重.本篇文章我们一起 ...
- RabbitMQ一些实用方法
https://blog.csdn.net/vbirdbest/article/details/78670550
- Java_常用类API之一
Math类 Math类中包含一些对数据进行数学运算的方法,而该类中的方法全都是静态的.像这样的类称之为工具类. 1 public static int abs(int a) 2 对一个数据求绝对值 3 ...
- ElasticSearch实战系列十一: ElasticSearch错误问题解决方案
前言 本文主要介绍ElasticSearch在使用过程中出现的各种问题解决思路和办法. ElasticSearch环境安装问题 1,max virtual memory areas vm.max_ma ...
- Linux 系统运行着许多子系统和应用程序。您可以使用系统日志记录从启动时就收集有关运行中系统的数据。有时
概述 在本教程中,您将学习以下内容: 配置 syslog 守护程序 了解标准设施.优先级和操作 配置日志轮换 了解 rsyslog 和 syslog-ng 系统内部发生了什么 Linux 系统运行着许 ...