摘要: 题意 给你N个线段(一条直线上),问删去一个之后,最长公共长度 ; 分析:首先我们得先知道n条线段公共的线段一定是(LMAX,RMIN) ,那我们可以先排序,然后枚举删除边; #include<stdio.h> #include<algorithm> using namespace std; str 阅读全文
posted @ 2018-08-26 20:02 shuai_hui 阅读(464) 评论(0) 推荐(0)
摘要: 题意 : 给出一些数、你可以从左到右对这些数进行三种操作花费 Ai 买入东西、以 Ai 价格卖出你当前有的东西、或者什么都不做、现在问你可以获取的最大利益是多少 分析:对每一个元素产生的贡献可以先计算出暂时的最优值,注意是暂时的最优,应为后面可以出现更加优的答案,所有下次遇到更优的时候就进行替换; 阅读全文
posted @ 2018-08-26 15:14 shuai_hui 阅读(366) 评论(0) 推荐(0)
摘要: 给一棵N个点的树,对应于一个长为N的全排列,对于排列的每个相邻数字a和b,他们的贡献是对应树上顶点a和b的路径长,求所有排列的贡献和。 分析: 经过简单的分析可以得知,全部的贡献其实相当与(这颗树上各个点的距离之和)*jichen(n-1) *2; 不相信可以举个简单的例子,或者用计算机打表可以知道 阅读全文
posted @ 2018-08-26 14:32 shuai_hui 阅读(232) 评论(0) 推荐(0)
摘要: 思路: 引:如果暴力枚举两点再求距离是显然会超时的。转换一下思路,我们可以对每条边,求所有可能的路径经过此边的次数:设这条边两端的点数分别为A和B,那 么这条边被经过的次数就是A*B,它对总的距离和的贡献就是(A*B*此边长度)。我们把所有边的贡献求总和,再除以总路径数N*(N-1)/2,即为最 后 阅读全文
posted @ 2018-08-26 13:54 shuai_hui 阅读(264) 评论(0) 推荐(0)
摘要: 二维平面上N个点,从(0,0)出发到(1e9,1e9),每次只能往右,上,右上三个方向移动, 该N个点只有从它的左下方格点可达,此时可获得收益。求该过程最大收益。 分析:我们很容易就可以想到用DP,假设这个位置是相对上一个位置的方向而来,但是复杂度达到N^2 ,这样是不行的; 我们可以利用坐标的信息 阅读全文
posted @ 2018-08-26 13:15 shuai_hui 阅读(184) 评论(0) 推荐(0)
摘要: 给定的pp是素数,要求给定一个加法运算表和乘法运算表,使(m+n)^p=m^p+n^p(0≤m,n<p)(m+n)^p=m^p+n^p(0≤m,n<p)。因为给定的p是素数,根据费马小定理得 (m+n)^(p−1)≡1(mod p)因此,(m+n)^p≡m+n (mod p)同时,m^p+n^p≡m 阅读全文
posted @ 2018-08-26 11:17 shuai_hui 阅读(96) 评论(0) 推荐(0)
摘要: n为奇数有勾股数(2*n+1,2*n*n+2*n,n*n+1);n为偶数有勾股数(2*n,n*n-1,n*n+1)。 阅读全文
posted @ 2018-08-26 11:10 shuai_hui 阅读(310) 评论(0) 推荐(0)