摘要: 呃呃呃,这个题我写的代码比较繁琐,不过自认为还是很容易理解的。 输入的是两个日期,如果把它看成一个数的话,数据范围也就是10000000-99999999;而且在其中很多数是不会出现的(必须是真实存在的日期)如果是从输入的第一个数到第二个数循环一次的话,1s的时间限制也是能过的,循环的时候,要判断这 阅读全文
posted @ 2020-04-17 20:46 zkw666 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 这个题若不看题目和范围,我首先想到用递推,不过 n≤2×10^9,若用递推,一定会超时。 要用矩阵加速的话首先要找到一个矩阵(不唯一),用来相乘; 〔a1,a2,a3〕是一个1×3的矩阵,我想把它转化为〔a2,a3,a4〕也是一个1×3的矩阵,所以要找的矩阵肯定是3×3的; 可以假设这个3×3的矩阵 阅读全文
posted @ 2020-03-10 18:02 zkw666 阅读(184) 评论(0) 推荐(1) 编辑
摘要: 这个题根据题目也就能知道应该怎么做,但是代码怎么实现矩阵乘法,是一个问题,所以就用到了重载运算符。 重载运算符可以定义一些普通的运算,比如 + ,-,×,÷,%,<,>,!=,……有很多,但不能自己创造符号。 在这个题中,需要定义矩阵乘法,在定义之前,还要定义一个结构体: 1 struct hls{ 阅读全文
posted @ 2020-03-10 12:22 zkw666 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 洛谷P1226就是快速幂的一个模板题: 输入b,p,k;求b的k次方除以k的值。数据范围 0 ≤ b , p , k < 2^31; 若按之前的方法用循环求 b^p的话,时间复杂度O(n),并且数据会很大,部分测试点 就会超时; 所以,就用到了快速幂: 比如求 2^64 (2^32)^2 => (( 阅读全文
posted @ 2020-03-09 11:28 zkw666 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 我的思路是 先将每个区间以右边界按升序排序,因为要排序,并且两个边界要对应上,所以用结构体方便一些: 1 struct a 2 { 3 int x; 4 int y; 5 }; 6 a s[50010]; x是左边界,y是右边界。然后在通过s[1].y与s[2].x s[2].y与s[3].x .. 阅读全文
posted @ 2020-03-01 20:24 zkw666 阅读(529) 评论(0) 推荐(0) 编辑
摘要: 我首先的思路是定义一个二维数组,之后发现病人的ID不仅有数字,还有字母,所以就要定义两个数组,一个来存储病人ID,是字符串。另一个来存储年龄。然后用两层循环,先将60岁以上的ID按年龄大小输出。剩下的再按顺序输出。 代码: 1 #include<iostream> 2 #include<cstrin 阅读全文
posted @ 2020-02-23 11:19 zkw666 阅读(1867) 评论(0) 推荐(0) 编辑
摘要: 这个题我写的十分繁琐,可能没找到正确的思路,不过我也是勉强过了。 我的思路是挨个判断点的横、纵坐标,如果有点的横、纵坐标都小于某个点,就将横、纵坐标小的那个点排除。再继续判断。 我定义了a,b两个数组,分别存储点的横、纵坐标。之后将a数组从小到大排序,在套两个循环,将纵坐标在于横坐标对应上: 1 s 阅读全文
posted @ 2020-02-23 10:56 zkw666 阅读(1202) 评论(0) 推荐(0) 编辑
摘要: 定义一个一维数组,输入数据后,按从小到大排序,再用二分查找是否有符合要求的两个数。 1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 int a[100000]; 5 int main() 6 { 7 int n, 阅读全文
posted @ 2020-02-23 10:27 zkw666 阅读(745) 评论(0) 推荐(0) 编辑
摘要: 定义一个一维数组,用来存储奶牛的高度。因为奶牛越多越危险,所以要尽量使奶牛少。所以就先将最高的奶牛放在最下面,然后按照高度由大到小排列,直到奶牛总高度大于书架高度。 排序用sort比较方便,不过要加头文件 #include<algorithm> 代码: 1 #include<iostream> 2 阅读全文
posted @ 2020-02-23 09:50 zkw666 阅读(682) 评论(0) 推荐(0) 编辑
摘要: 这个题是在搜索与回溯中的,但我也没有想到用搜索,用了递归。 其实递归我并不是很会用,只是通过这个题更深刻了解递归。 函数: 1 int f(int m,int n) 2 { 3 if(m==0||n==1) 4 return 1; 5 if(n>m) 6 return f(m,m); 7 else 阅读全文
posted @ 2020-02-21 10:47 zkw666 阅读(486) 评论(0) 推荐(0) 编辑