摘要: 原题链接 考察:找规律(?) 发现规律后代码超短..我还想复杂了... 思路: 第1项是k0 第2项是k1 第3项是k0+k1 可以发现指数和第n项的二进制排列相同..通过这个制造映射,求出答案 1 #include <iostream> 2 #include <algorithm> 3 #incl 阅读全文
posted @ 2021-02-23 22:28 acmloser 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:线性dp or 暴力枚举 思路一: 预处理前缀和,四个for循环枚举边界. 思路二: 55. 连续子数组的最大和 根据这道题的思路,f[i]定义为以i结尾的最大连续和,集合划分分为长度为1和长度>1, 当长度为1 状态转移方程为f[i] = a[i],当长度>1,说明至少包含i,为f 阅读全文
posted @ 2021-02-23 19:42 acmloser 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:STL(?) 思路: 最简单的做法:next_permutation 全排列. 1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 const int N = 10010; 5 int a[N]; 阅读全文
posted @ 2021-02-23 15:50 acmloser 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:枚举 错误思路: 第一想法是两个对顶堆维护最大值和最小值,但是遇到这样的 0 2 21 0 19 的数据会出错.原因是当第一次修改a[n]与a[1]符合距离17后,与a[2]不一定符合距离17,但是题目约定只能修改一次a2+b2 <= (a+b)2这样会使得结果小了.同理每次sort 阅读全文
posted @ 2021-02-23 14:08 acmloser 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:唯一分解定理 这题不会,果然我是不配学OI的 思路: 易知只有当阶乘出现了2和5才能有一个0, 由唯一分解定理 n! = 2a3b5c....,当我们把n!的2和5的共同凑成10的因子全部除去后,再%10就能得到答案.这个答案为 2a-min(a,c)%10*5c-min(a,c)% 阅读全文
posted @ 2021-02-23 11:43 acmloser 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:模拟 思路一: 枚举每一年的每一月,看该月13号离1900年1月1日有多少天,对天数模7统计. 这里比较简单的做法是计算xxxx年x月的1日离1900年1月1日有多少天,再+12天就是13号离它多少天. 1 #include <iostream> 2 #include <cstdio 阅读全文
posted @ 2021-02-23 00:03 acmloser 阅读(39) 评论(0) 推荐(0) 编辑