随笔分类 - 题解
摘要:此题数据范围小,O(n^3)暴力可做。 O(1)做法灵感来自于“某爱好赌博的数学家发现两骰子点数之和为7的概率最大”的典故。 学习了此题的最高赞题解,进而得出本文解法。 首先考虑两个骰子的情况: (下图引用自此题的最高赞题解,我自己懒得画了qwq) 观察可得: ①点数之和共s1+s2-1种情况,分别
阅读全文
摘要:大模拟、数学题、阅读题(虽然我题意没看懂然后苟了题解QwQ) 1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 5 #define ri register int 6 #define inf 2147483647 7 8 using
阅读全文
摘要:1 #include<cstdio> 2 #include<cstring> 3 4 using namespace std; 5 6 inline int max(int x,int y){ 7 if(x>y)return x;else return y; 8 } 9 10 struct bignum{ 11 int c[10],l; 12 13 void clear(){ 14 memset(
阅读全文
摘要:1 #include<cstdio> 2 #include<cstring> 3 4 using namespace std; 5 6 int find(int); 7 int abs(int); 8 void setup(); 9 10 int fa[30005]; 11 int size[30005]; 12 int d[30005]; 13 int T,x,y,fx,fy; 14 char
阅读全文
摘要:本题思路非常明确:在所有能插入加号的位置枚举加号是否存在,对于每一种情况,若求得和为n则更新答案。 但是看看数据规模。。。长度<=40,也就是说枚举的时间最多可达2^39,显然会T,所以需要剪枝。 剪枝1:若整串拆分为单个数字后求和,所得结果>n,则一定无解。 原因:显然在一次拆分后,新生成的数字的
阅读全文
摘要:这道题好干燥啊。。。折腾了半个月。。。感谢bogo大佬对我的指导。。。题目要求支持的操作:1.查询某段路径的所有子路径的xor值之和;2.修改某条边的权值。重点是操作1。刚开始,我看到了操作1之后就不自觉的想到了非~常暴力的东西。。。还好大佬及时把我引上正途:分治! 大家知道,最大子段和有个分治算法
阅读全文
摘要:这题的题意是:对于每组x、y,求x到y路径上最小边权的最大值。 于是可以使用最大生成树,因为最大生成树满足性质:生成树中最小边权最大,且任意两点间路径上最小边权最大。 有了树之后,要求路径,那就要考虑LCA。 首先,这题可以树剖,但是我太懒了,于是写了倍增233 具体搞法: Kruskal跑出最大生
阅读全文
摘要:圆润的多边形: 我们可将所求图形划分如下: 绿色部分是一凸多边形,红色部分为若干个长方形,蓝色部分为若干个扇形。 易证:1.蓝色部分的总和是一个半径为r的整圆;2.红色部分的总和=凸多边形周长*r。 那么现在就只剩下如何计算的问题。 1.对于前12.5%数据,r=0且点坐标成顺时针排列,那么直接作为
阅读全文

浙公网安备 33010602011771号