LocalMaxima_NOI导刊2009提高(1)】的更多相关文章

先打表,发现\(ans=\sum_{i=1}^n\frac{1}{i}\) 对于小数据可以直接打表 数据很大时,精度相对就比较宽松 欧拉-马斯刻若尼常数=调和级数-自然对数 调和级数为:\(\sum_{i=1}^{\infty}\frac{1}{i}\) 自然对数就是:\(\ln (x)\) 欧拉-马斯刻若尼常数:\(\gamma=\lim _{n\to \infty}[(\sum_{i=1}^n)-\ln(n)]=\int_1^{\infty}(\frac{1}{\lfloor x\rfloo…
又是有关于\(1-n\)排列的题,考虑从大到小依次插入构造排列 对于第\(i\)个数(也就是\(n-i+1\)),只有当它插在当前排列最前面时才会使那个什么数的个数+1,而在最前面的概率为\(\frac{1}{i}\),所以插入\(i\)增加的什么数的期望个数为\(\frac{1}{i}\),所以答案就是\(\sum_{i=1}^n \frac{1}{i}\) 但是这题\(n\)有\(2^{31}-1\)那么多,,, 这时要用到一个新东西--调和级数 这个数就是\(\sum_{i=1}^n \f…
显然只需要算出每个数比前面所有数大的期望然后全部加起来就好了,一个数的期望怎么算呢? 对于一个数我们需要考虑比它大的数,因为比它小的数放它前面放它后面都可以,但是比它大的数只能放它后面.考虑大于等于它的数有n-i+1个,排列有(n-i+1)!种,但是它必须放在所有数的前面,也就是合法的排列只有(n-i)!种,那么期望(n-i)!/(n-i+1)!=1/(n-i+1). 于是总的期望为 这是个调和级数,貌似可以用某个公式计算,但是这个时候可以祭出神器,分段打表!然后就AC了233 #include…
我们先考虑第i大数,比它大的数有(n-i)个,显然要使i是Local Maxima,比它大的数必须放在它后面,那么它是Local Maxima的期望是: 那么n个数中Local Maxima个数的期望就是,即为,这个就是调和级数. 为了避免超时,再用分段打表的特殊姿势即可 正式代码(略去一堆赋值) #include<cstdio> #include<algorithm> using namespace std; ; long long n,m; ],ans; int main(){…
P1952 火星上的加法运算_NOI导刊2009提高(3) 题目描述 最近欢欢看到一本有关火星的书籍,其中她被一个加法运算所困惑,由于她的运算水平有限.她想向你求助,作为一位优秀的程序员,你当然不会拒绝. 输入输出格式 输入格式: 第一行先愉入一个运算的进制N(2<=N<=36),接下来两行为需要进行运算的字符,其中每个字符串的长度不超过200位,其为N进制的数.其中包括0-9及a-z(代表10-35). 输出格式: 在N进制下它们的和 输入输出样例 输入样例#1: 复制 20 1234567…
传送门 思路 首先定义\(h\)数组,\(h[i][j]\)表示第\(i\)行第\(j\)列最多可以向上延伸多长(直到一个被用过的格子) 然后使用单调栈算出 \(l_i\)和 \(r_i\) ,分别是 \(h[i]\) 中左边第一个(从 \(h[i][j]\) 开始)不大于\(h[i][j]\)的数和右边第一个(从\(h[i][j]\)开始)小于\(h[i][j]\)的数 最终答案为\(ans +=\ (j - l[j]) * (r[j] - j) * h[i][j]\) 即在当前行i中,左边在…
P1950 长方形_NOI导刊2009提高(2) 题目描述 小明今天突发奇想,想从一张用过的纸中剪出一个长方形. 为了简化问题,小明做出如下规定: (1)这张纸的长宽分别为n,m.小明讲这张纸看成是由n*m个格子组成,在剪的时候,只能沿着格子的边缘剪. (2)这张纸有些地方小明以前在上面画过,剪出来的长方形不能含有以前画过的地方. (3)剪出来的长方形的大小没有限制. 小明看着这张纸,想了好多种剪的方法,可是到底有几种呢?小明数不过来,你能帮帮他吗? 输入格式 第一行两个正整数n,m,表示这张纸…
P1944 最长括号匹配_NOI导刊2009提高 题解 宁愿相信世上有鬼,也不能随便相信某谷题目标签 我想了半天然后看了眼题解,发现用栈来模拟就好了 栈来模拟,还要用到一个bool数组,标记是否已经匹配 use[ i ] 一串括号,入栈,遇到匹配的就弹出去,标记已经匹配,然后最后挑连续匹配的最大的就好了,因为题目要求子串 注意两个点: 1.q[top]数组存的是括号的标号,而不是top是存的括号标号 2.res记录暂时一共有多少个连续的匹配括号数,所以每遇到一个新的括号,都要更新一遍 具体可以结…
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例: 输出样例: 说明 思路 AC代码 总结 题面 题目链接 P1951 收费站_NOI导刊2009提高(2) 其实还有一道双倍经验 P1462 通往奥格瑞玛的道路 题目描述 在某个遥远的国家里,有n个城市.编号为1,2,3,-,n. 这个国家的政府修建了m条双向的公路.每条公路连接着两个城市.沿着某条公路,开车从一个城市到另一个城市,需要花费一定的汽油. 开车每经过一个城市,都会被收取一定的费用(包括起点和终…
查看原题请戳这里 核心思路 题目让求最大费用的最小值,很显然这道题可以二分,于是我们可以二分花费的最大值. check函数 那么,我们该怎么写check函数呢? 我们可以删去费用大于mid的点以及与其相连的边,然后在剩余的点和边组成的图上跑一遍最短路求出从u到v需要消耗的最小的汽油,如果消耗汽油最小值不大于s,那么返回true,否则返回false. 注意事项 在二分时一定要判断到起点的花费是否大于mid r的初始值值应为$f_{max}+1$,因为如果$r_{start}=f_{max}$,那么…