摘要:
1 奇数阶幻方构造法 (1) 将1放在第一行中间一列; (2) 从2开始直到n×n止各数依次按下列规则存放:按 45°方向行走,向右上,即每一个数存放的行比前一个数的行数减1,列数加1 (3) 如果行列范围超出矩阵范围,则回绕。例如1在第1行,则2应放在最下一行,列数同样加1; (4) 如果按上面规 阅读全文
摘要:
题目大意:给出两个数组,求第一个数组区间内的最大值和第二个区间内的最小值相同的区间有多少种。 题目思路:通过预处理(O(n*Logn))后,每次查询的时间复杂度为O(1),但是如果暴力查询O(n*n)依然会超时,因为最大值,最小值单调性的原因,通过二分来优化查询过程。 首先是预处理,用动态规划(DP 阅读全文
摘要:
#include<iostream>#include<algorithm>#include<cstring>#include<vector>#include<stdio.h>#include<stdlib.h>#include<queue>#include<math.h>#include<map># 阅读全文
摘要:
题目大意:有四个小偷,第一个小偷偷a个巧克力,后面几个小偷依次偷a*k,a*k*k,a*k*k*k个巧克力,现在知道小偷有n中偷法,求在这n种偷法中偷得最多的小偷的所偷的最小值。 题目思路:二分查找偷得最多的小偷所偷的数目,并遍历k获取该数目下的方案数。脑子一抽将最右端初始化做了1e15,wa了n多 阅读全文
摘要:
题目大意:给出n个点,两点间的常规路为双向路,路长为两点之间的差的绝对值,第二行为捷径,捷径为单向路(第i个点到ai点),距离为1。问1到各个点之间的最短距离。 题目思路:SPFA求最短路 #include<iostream> #include<algorithm> #include<cstring 阅读全文
摘要:
题目大意:给出一个电话号,按出这个电话号需要一定的手指移动,问该种手指移动的方法是否能按出其他电话号,是的话输出NO,否则输出YES。 题目思路:模拟 #include<iostream> #include<algorithm> #include<cstring> #include<vector> 阅读全文
摘要:
#include<iostream>#include<algorithm>#include<cstring>#include<vector>#include<stdio.h>#include<stdlib.h>#include<queue>#include<math.h>#include<map># 阅读全文
摘要:
题目大意:给出两条直线,每个直线上的两点,求这两条直线的位置关系:共线,平行,或相交,相交输出交点。 题目思路:主要在于求交点 F0(X)=a0x+b0y+c0==0; F1(X)=a1x+b1y+c1==0; 设点(x0,y0)(x1,y1)过直线 解方程:a=y1-y0,b=x0-x1,c=x1 阅读全文
摘要:
题目大意:给出n条线段,问是否存在一条直线,使得n条线段在直线上的投影有至少一个公共点。 题目思路:如果假设成立,那么作该直线的垂线l,该垂线l与所有线段相交,且交点可为线段中的某两个交点 证明:若有l和所有线段相交,则可保持l和所有线段相交,左右平移l到和某一线段交于端点停止(“移不动了”)。然后 阅读全文
摘要:
题目大意:和 TOY题意一样,但是需要对隔板从左到右进行排序,要求输出的是升序排列的含有i个玩具的方格数,以及i值。 题目思路:判断叉积,二分遍历 #include<iostream> #include<algorithm> #include<cstring> #include<vector> #i 阅读全文