PKU2018校赛 H题 Safe Upper Bound

http://poj.openjudge.cn/practice/C18H

题目

算平均数用到公式\[\bar{x}=\frac{x_1+x_2+x_3+\cdots+x_n}{n}\]

但如果用int型计算,那么\(x_1+x_2+x_3+\cdots+x_n\)可能会超过\(2^{31}-1\)

算6个数的平均数可以这么算

Calculate the average of\(x_1,x_2,x_3\)
\[\bar{x}_1=\frac{x_1+x_2+x_3}{3}\]
Calculate the average of\(x_4,x_5,x_6\)
\[\bar{x}_2=\frac{x_4+x_5+x_6}{3}\]
Calculate the average of\(\bar{x}_1,\bar{x}_2\)
\[\bar{x}=\frac{\bar{x}_1+\bar{x}_2}{2}\]
In this way, as you can see, we actually add up at most $3$ integers at one time, instead of adding all the $6$ integers together. Therefore, as long as all the integers are not greater than \(\left\lfloor {\left( {{2^{31}} - 1} \right)/3} \right\rfloor \), we are not at risk of getting an overflow result. Thus, we call the value $71582782$ the Safe Upper Bound of $6$.

输入N,输出N的安全上界

题解

某日无聊翻openjudge的poj队伍,发现了PKU的校赛,想找一道最简单的题满足虚荣心:(

看了好久没看懂在干什么,看样例用计算器猜是$2^{31}-1$除以N的最大素因子

数论不行:(

照着书抄了个Pollard Rho+Miller-Rabin算法 TLE(其实根本就不知道复杂度

于是尝试Eratosthenes线性筛……可是需要开的数组太大……貌似无解了

其实还是自己太菜:(

为什么可以这么做呢……猜可能和这个过程有关
\[\left\lfloor {\frac{{a + b}}{2}} \right\rfloor  = \frac{{a + b}}{2} - \frac{{\left( {a + b} \right)\% 2}}{2}\]
\[\left\lfloor {\frac{{c + d}}{2}} \right\rfloor  = \frac{{c + d}}{2} - \frac{{\left( {c + d} \right)\% 2}}{2}\]
\[\left\lfloor {\frac{{a + b}}{2}} \right\rfloor  + \left\lfloor {\frac{{c + d}}{2}} \right\rfloor  = \frac{{a + b + c + d}}{2} - \frac{{a\% 2 + b\% 2 + c\% 2 + d\% 2}}{2}\]
\[\left\lfloor {\frac{{\left\lfloor {\frac{{a + b}}{2}} \right\rfloor  + \left\lfloor {\frac{{c + d}}{2}} \right\rfloor }}{2}} \right\rfloor  = \frac{{a + b + c + d}}{4} - \frac{{a\% 2 + b\% 2 + c\% 2 + d\% 2}}{4}\]
至于\(\frac{{a\% 2 + b\% 2 + c\% 2 + d\% 2}}{4}\)是否等于\({\left( {a + b + c + d} \right)\% 4}\)

我还是菜鸟,等以后变强了再看看……推广也只有以后了

空间问题抄了UESTC大神的代码

https://vjudge.net/solution/15934751

看了以后感觉自己真的太菜了:(

这差距不是一点啊……还得加油

原文地址:https://www.cnblogs.com/sahdsg/p/10369063.html

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

PKU2018校赛 H题 Safe Upper Bound的相关文章

CSU 1425 NUDT校赛 I题 Prime Summation

这个题本来有希望在比赛里面出了的 当时也想着用递推 因为后面的数明显是由前面的推过来的 但是在计算的时候 因为判重的问题 ...很无语.我打算用一个tot[i]来存i的总种树,tot[i]+=tot[j]//j为可以由j推到i的一系列数,但这样是不对的,会产生大量重复计算... 看了下标程才发现要用二维来计算出种类总数,f[i][j]+=sum(f[i-j][k]) 表示在推i数的时候,第一个素数为j的种类数,注意j一定为素数,而且k不能大于j...标程里面处理的比较简练,就学了下他的写法. 至

HDUOJ-------2493Timer(数学 2008北京现场赛H题)

Timer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 445    Accepted Submission(s): 90 Problem Description Recently, some archaeologists discovered an ancient relic on a small island in the Pa

ACM-ICPC 2018徐州网络赛-H题 Ryuji doesn't want to study

C*M....死于update的一个long long写成int了 心累 不想写过程了 ******** 树状数组,一个平的一个斜着的,怎么斜都行 题库链接:https://nanti.jisuanke.com/t/31460 #include <iostream> #include <cstring> #define ll long long #define lowbit(x) (x & -x) using namespace std; const int maxn =

2018WFU校赛B题

我们在ACM的题目中已经了解了什么是ACM了,ACM还是很残酷的了(? _ ?),那么现在你就要解决一个ACM最简单的题了,简单到省赛和区域赛都不会出这种简单的题.ls很强,即使每年都在ACM这个大坑里,但是他依旧关心自己的排名.但是排名规则真的很令人烦恼,因为它是按平均分排的并且他们学习的科目数量是不一定的.所以你的任务就来了,ls的班里有n名同学,每个同学有3门课程,现在你要根据他们的成绩总和从大到小排名如果成绩相同则按他们名字的字典序(字典序当然就是字典的顺序啦)排名. Input 第1行

青岛理工交流赛 H题 素数间隙

13110581088注销 素数间隙 Time Limit: 1000MS Memory limit: 262144K 题目描述 Neko猫是一个很喜欢玩数字游戏的会说话的肥猫,经常会想到很多很好玩的数字游戏,有一天,它想到一个叫做素数间隙的游戏.据Neko猫的定义,素数间隙是两个相邻素数p和q组成的开区间[p, q),所以素数间隙的长度就是q-p. 例如7和11在素数表里是两个相邻的素数,所以7和11的素数间隙的长度为11-7,为4. 现在Neko猫会给你很多个正整数K(1<K≤1299710

2017CCPC中南地区赛 H题(最长路)

题目地址:202.197.224.59/OnlineJudge2/ 来自湘潭大学OJ,题号:1267. 这里用到了一个树的直径(树中的最长边)的结论:当你找到一棵树的最长边后,这个树中所有点的最长边必定和这条边的两个端点相连.下面给出证明: 设这条最长边的两个端点分别为B和E: 1.当选择的任意点M在这条最长边上时:如果此时还存在另一个点T,使得MT > max{MB,ME}.则:MT + min{MB,ME} > max{MB,ME} + min{MB,ME} = BE这与题目假设相矛盾.

ACM-ICPC 2018青岛网络赛-H题

把这题的每个点分成两种情况看,如果是从这个点开始,0算作2,1算作1,如果是中间点或者是结束点,如果和前面的相同看作2,不相同看作1 #include <iostream> #include <string> #include <string.h> using namespace std; int main() { ios::sync_with_stdio(false); int t; cin >> t; while (t--) { int a, b; st

HDU - 6513 Reverse It (SYSU校赛C题)(组合数学+容斥)

题目链接 题意:给定一个n*m的矩阵,可以选择至多两个子矩阵将其反转,求能形成多少种不同的矩阵. 任选一个矩阵有$C_{n+1}^{2}C_{m+1}^{2}$种方法,任选两个不同的矩阵有$C_{C_{n+1}^{2}C_{m+1}^{2}}^{2}$种方法,但其中有重复的,需要去重. 重复的情况一共有以下四种: 第一种,两矩阵拼合成一个矩阵,这样的图形有$C_{n+1}^{2}C_{m+1}^{2}$个,重复度(出现的次数)为(n+m-2) 第二种,形成的两个矩阵在同一行或同一列,有$C_{n

哈尔滨理工大学2016新生赛H题

陈月亮最喜欢的季节就是冬天了,这不看着窗外飘起了雪花,陈月亮开心的跑出屋来看雪.但是迷迷糊糊的陈月亮不知道自己是在做梦还是真的下起了雪.突然她想起了一句话,在真实世界中是没有两片一样的雪花的.于是你的任务就是比较这场雪中的所有雪花,如果出现了两朵完全一致的雪花,则证明陈月亮是在梦中. 每朵雪花用六个整数表示,范围在(1 – 10000000)之间,表示雪花六个花瓣的长度,六个整数的先后出现顺序可能是顺时针顺序也可能是逆时针顺序,并且可能是从任意一个花瓣开始的.比如说对同一个花瓣,描述方法可能是1