cstring

memset各类型的极大极小值

∥☆過路亽.° 提交于 2020-08-18 08:47:41
转载来自:https://blog.csdn.net/Vmurder/article/details/46537613 链接: #include <stdio.h> int main() { puts( " 转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢 " ); puts( " 网址:blog.csdn.net/vmurder/article/details/46537613 " ); } int ”较“的原则:加法不爆。 极大值:0x7f 较大值:0x3f 较小值:0xc0 极小值:0x80 long long ”较“的原则:加法不爆。 极大值:0x7f 较大值:0x3f 较小值:0xc0 极小值:0x80 float ”较“的原则:保证一定位精度。 7f以上一直到be都是-0 (实际上是一个很小的>-1.0的负数) 极大值:0x7f 较大值:0x4f 较小值:0xce 极小值:0xfe 0xff是 -1.#QNAN0000…… (-∞?) double ”较“的原则:保证一定位精度。 极大值:0x7f 较大值:0x43 较小值:0xc2 极小值:0xfe 实验代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define N 5 using

2020/5/10 模拟赛 Day6 T2 操场

戏子无情 提交于 2020-08-17 20:13:46
题面 Solution 先从n较小的情况枚举找规律 这是$n=1$时的情况,只有1种摆放方式; $$f_{1}=1$$ 这是$n=2$时的摆放方式,共有5种摆放方式; $$f_{2}=5$$ 在考虑$n=3$时的摆放方式时,可以想到用$n=2$和$n=1$时的情况进行组合 所以这是就有$2\times 1\times 5$种方式(第一列使用$n=1$时情况,2、3列使用$n=2$时情况 以及 1、2列使用$n=2$时情况,3列使用$n=1$时情况) 第2行第1列的情况是重复的,因为$n=2$中的第一种情况其实就是$n=1$的情况的拼接,所以再使用这个情况进行组合就会出现重复,所以真正能用于组合的$n=2$的情况只有后4种。 但是仍然有情况遗漏: 这两种情况无论如何都不能分割成$n=1$和$n=2$情况的组合。 $$f_{3}=f_{2}+4f_{1}+2f_{0}+3 \times 0$$ 同样地,在$n=4$时也会发现有一些情况不能由之前的任意一种情况拼接而来 $$f_{4}=f_{3}+4f_{2}+2f_{1}+3f_{0}\left ( f_{0}=1 \right )$$ 继续列举下去,会发现每一个$n\left ( n\geq 3 \right )$,当$n$为奇数,就会找到2种无法组合的情况,偶数时则会找到3种。 $$f_{n}=f_{n-1}+4f_{n-2}+2

详解斜率优化

本秂侑毒 提交于 2020-08-17 06:21:27
详解斜率优化 斜率优化的话前几个月学过一次,然后感觉会了,结果今天遇到个题,比赛时花了1h硬敲没怼出来,然后又 去看了看人家的讲解,加上自己疯狂yy,才发现( 原来很水嘛 )上次只是略懂皮毛。这是开通博客园的第一篇博客,记录一下斜率优化,顺便为自己以后复习做准备。 前置芝士: dp(废话) 单调队列 初二数学(起码知道笛卡尔坐标系和一次函数吧QWQ) 一定的数形结合能力 那么我们开始吧。 引例(这里推出今天怼了好久没搞出来的 水 题) 我们需要将一个文件复制到n个服务器上,这些服务器的编号为S1, S2, …, Sn。 首先,我们可以选择一些服务器,直接把文件复制到它们中;将文件复制到服务器Si上,需要花费ci > 0的置放费用。对于没有直接被复制文件的服务器Si来说,它依次向后检查Si+1, Si+2, …直到找到一台服务器Sj:Sj中的文件是通过直接复制得到的,于是Si从Sj处间接复制得到该文件,这种复制方式的读取费用是j – i(注意j>i)。另外,Sn中的文件必须是通过直接复制得到的,因为它不可能间接的通过别的服务器进行复制。我们设计一种复制方案,即对每一台服务器确定它是通过直接还是间接的方式进行复制(Sn只能通过直接方式),最终使每一台服务器都得到文件,且总花费最小。 60% n<=1000 100% n<=1000000 额,说了一大坨,大概意思就是说每个点要不花费c

长链剖分

百般思念 提交于 2020-08-17 03:43:22
看到标题估计大家也猜到了,其实和 树链剖分 所用到的重链剖分挺像。 重链剖分中,每个点所选取的重儿子是它儿子中子树最大的那一个儿子,他们之间的连线被称为重边;在整棵树中,许多重边组成的链即重链。重链相互不重合的划分了整棵树。 重剖和长剖唯一不同的是:重链剖分中一个点的重儿子是子树最大(管辖节点最多)的儿子,而长链剖分选择的是 子树深度最大的那个儿子(子树深度:一个点的子树中深度最大的点的深度)。 (图:重链剖分和长链剖分的对比) 看明白是长链剖分是怎么划分了后,我们先来了解一下长链剖分的两个性质。 性质1: 对树长链剖分后,树上所有长链的长度和为$n$ 这个不必解释吧... 性质2: 对于树上任意一点$x$,它的$K$级祖先$y$所在长链的长度一定$>=K$ 这个恐怕就没那么显然了.. 不过还是好懂。如果$x$就在$y$所在的长链里,那么既然$x$上跳$K$步后都还在该长链里,这条长链的长度铁定$>=k$咯 那么如果$x$不在$y$所在的长链里呢?也简单,我们思考一下,$x$没在$y$所在的长链的原因是什么?就是因为x的深度没有$y$所在长链的 最大深度 大,所以才被分到了轻儿子里。那既然$y$所在长链的最大深度$>=$x的深度,这条长链的长度自然$>=K$了 (图:x不在y所在的长链的情况) 性质3: 任何一个点向上跳到根所经过的轻边不会超过$\sqrt{n}$条

7.5集训模拟赛8

冷暖自知 提交于 2020-08-16 03:22:08
A. 食物链 题目描述 如图所示为某生态系统的食物网示意图,据图回答此题。 现在给你n 个物种和 m条能量流动关系,求其中的食物链条数。 物种的名称为从1 到 n的编号。 m条能量流动关系形如 其中 a i ,b i 表示能量从物种a i 流向物种b i 。注意单独的一种孤立生物不算一条食物链。 输入格式 第一行两个整数n 和m ,接下来 m行每行两个整数 a i ,b i 描述m 条能量流动关系。 (保证输入数据符合生物学特点,即不存在环,且不会有重复的能量流动关系出现) 输出格式 一个整数,即食物网中的食物链条数。 样例 样例输入 10 16 1 2 1 4 1 10 2 3 2 5 4 3 4 5 4 8 6 5 7 6 7 9 8 5 9 8 10 6 10 7 10 9 样例输出 9 数据范围与提示 分析 此题就是一道简单的dfs,食物链(欺负学地理的,哼)从最低端到最顶端,最低端一定是入度为零的点,最顶端一定是出度为零的点,那么我们只需要统计从每一个低端(入度为零)到每一个顶端(出度为零)的点的有多少不同的路径。 Code #include<bits/stdc++.h> using namespace std; const int N = 2e6; int n,m; int x,y; int rd[N],cd[N]; int dp[N],head[N],cnt;

bug调试---1、斐波那契数列的矩阵快速幂解法bug

扶醉桌前 提交于 2020-08-15 23:28:39
bug调试---1、斐波那契数列的矩阵快速幂解法bug 一、总结 一句话总结: 发现问题出在矩阵的快速幂里面,因为函数传n过去的时候指定的是int,而本题的n<2^63,所以n本来应该是long long类型的 错误原因:这里的n传参写成了int // 矩阵的快速幂 // 这里的n写成int类型有问题,这里要是long long Matrix pow(Matrix a, long long n) { Matrix ans, base = a; ans.row = 2 ; ans.column = 2 ; ans.v[ 1 ][ 1 ] = ans.v[ 2 ][ 2 ] = 1 ; while (n) { if (n % 2 == 1 ) ans = multiply(ans, base ); base = multiply( base , base ); n = n / 2 ; } return ans; } 1、解决斐波那契数列矩阵快速幂代码的bug的启示? a、出现问题,要分析问题出现的原因,这样问题就比较好比较快的解决 b、或者可以参照别人的解决方式(代码),这样站在别人的肩膀上,也很快 2、解决bug如果没法看日志,其它一个比较快的方法是什么,比如(斐波那契数列矩阵快速幂代码的bug)? 二分法测bug,我们拿有问题的程序和标准程序的答案来做对比,逐步大批量的增大n

MFC图形编辑界面工具

房东的猫 提交于 2020-08-15 16:50:41
//2020年6月17 更新 这篇博客最近好像挺火?不少师弟师妹咨询我MFC的内容,额,博主很久也没有用MFC搞事情了,现在甚至都没有开发环境,加上到期末了,事情很多,实在没有精力回顾帮大家解决问题,今年这种情况特殊,我也很能理解18级的师弟师妹们,教授实训课的应该还是张帆老师吧,很好的老师,可以多向他请教,B站好像也有相关的教程,方法总比困难多,加油! 一、背景 喔,五天的实训终于结束了,学校安排的这次实训课名称叫高级程序设计实训,但在我看来,主要是学习了Visual C++ .NET所提供的MFC(Microsoft Foundation Class)库所提供的类及其功能函数的使用。写这一篇博客的目的是针对实训中出现的问题做一些说明,方便以后查看,并且对这次实训做一些总结。这一次的实训对我来说其实挺难受的,真正用来学习使用VS和MFC的时间只有三天,加上下个周是考试周,还有几门课没有复习完,这几天基本上是连轴转,中午也泡在实验室里,唉啊还是自己太菜了。最后我们需要提交一个课程设计程序,因为时间的原因,我选择了最简单的图形界面编辑工具,这个程序其实在C++的课程设计上就有这个,但当时我还不会windows图形界面的编程,现在想想这两个课程设计其实完全可以是一份(捂脸)。 最后做出来的界面是这样的: 在功能上: 能够在 windows 的界面下画图,能够画直线、空心矩形、、圆角矩形

算法与数据结构---6.8、斐波那契数列-矩阵快速幂

。_饼干妹妹 提交于 2020-08-15 16:34:54
算法与数据结构---6.8、斐波那契数列-矩阵快速幂 一、总结 一句话总结: 斐波那契数列的矩阵快速幂的解法,也就是将递推表达式化成矩阵的幂操作和乘法操作,利用快速幂,可以得到O(logn)的解法 1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 const int mod= 1000000007 ; 5 6 // 定义矩阵对应的结构体 7 struct Matrix{ 8 int row,column; 9 long long v[ 3 ][ 3 ]; 10 Matrix(){ 11 memset(v, 0 , sizeof (v)); 12 } 13 }; 14 15 // 矩阵乘法 16 Matrix multiply(Matrix a,Matrix b){ 17 Matrix ans; 18 ans.row= a.row; 19 ans.column= b.column; 20 // 具体来做矩阵乘法 21 for ( int i= 1 ;i<=a.row;i++ ){ 22 for ( int j= 1 ;j<=b.column;j++ ){ 23 for ( int k= 1 ;k<=a.column;k++ ){ 24 ans.v[i][j]+=(a.v[i][k]*b.v[k][j

详解斜率优化

让人想犯罪 __ 提交于 2020-08-15 08:22:24
详解斜率优化 斜率优化的话前几个月学过一次,然后感觉会了,结果今天遇到个题,比赛时花了1h硬敲没怼出来,然后又 去看了看人家的讲解,加上自己疯狂yy,才发现( 原来很水嘛 )上次只是略懂皮毛。这是开通博客园的第一篇博客,记录一下斜率优化,顺便为自己以后复习做准备。 前置芝士: dp(废话) 单调队列 初二数学(起码知道笛卡尔坐标系和一次函数吧QWQ) 一定的数形结合能力 那么我们开始吧。 引例(这里推出今天怼了好久没搞出来的 水 题) 我们需要将一个文件复制到n个服务器上,这些服务器的编号为S1, S2, …, Sn。 首先,我们可以选择一些服务器,直接把文件复制到它们中;将文件复制到服务器Si上,需要花费ci > 0的置放费用。对于没有直接被复制文件的服务器Si来说,它依次向后检查Si+1, Si+2, …直到找到一台服务器Sj:Sj中的文件是通过直接复制得到的,于是Si从Sj处间接复制得到该文件,这种复制方式的读取费用是j – i(注意j>i)。另外,Sn中的文件必须是通过直接复制得到的,因为它不可能间接的通过别的服务器进行复制。我们设计一种复制方案,即对每一台服务器确定它是通过直接还是间接的方式进行复制(Sn只能通过直接方式),最终使每一台服务器都得到文件,且总花费最小。 60% n<=1000 100% n<=1000000 额,说了一大坨,大概意思就是说每个点要不花费c

详解斜率优化

懵懂的女人 提交于 2020-08-15 08:22:10
详解斜率优化 斜率优化的话前几个月学过一次,然后感觉会了,结果今天遇到个题,比赛时花了1h硬敲没怼出来,然后又 去看了看人家的讲解,加上自己疯狂yy,才发现( 原来很水嘛 )上次只是略懂皮毛。这是开通博客园的第一篇博客,记录一下斜率优化,顺便为自己以后复习做准备。 前置芝士: dp(废话) 单调队列 初二数学(起码知道笛卡尔坐标系和一次函数吧QWQ) 一定的数形结合能力 那么我们开始吧。 引例(这里推出今天怼了好久没搞出来的 水 题) 我们需要将一个文件复制到n个服务器上,这些服务器的编号为S1, S2, …, Sn。 首先,我们可以选择一些服务器,直接把文件复制到它们中;将文件复制到服务器Si上,需要花费ci > 0的置放费用。对于没有直接被复制文件的服务器Si来说,它依次向后检查Si+1, Si+2, …直到找到一台服务器Sj:Sj中的文件是通过直接复制得到的,于是Si从Sj处间接复制得到该文件,这种复制方式的读取费用是j – i(注意j>i)。另外,Sn中的文件必须是通过直接复制得到的,因为它不可能间接的通过别的服务器进行复制。我们设计一种复制方案,即对每一台服务器确定它是通过直接还是间接的方式进行复制(Sn只能通过直接方式),最终使每一台服务器都得到文件,且总花费最小。 60% n<=1000 100% n<=1000000 额,说了一大坨,大概意思就是说每个点要不花费c