链表练习2 PAT乙级1025/甲级1074:反转链表 算法思路:将链表分块,每k个节点一块,针对每块中的节点进行反转操作 反转链表的伪代码 设该区域头节点为head,定义指针p,q,r p=head; q=p->next p->next = null; while(k--){ r = q->nex ...
分类:
编程语言 时间:
2021-06-20 17:43:12
阅读次数:
0
Description 思路 从样例的图片可以很好的理清思路。 设$dp[i]$为方案数,那么有两种贡献: 用等长的线段覆盖整个区间,共有$g(i)$种情况,其中$g(i)$代表$i$的约数个数。 中间留空,一共有$dp[i-1]+dp[i-2]+...+dp[1]$种情况。 所以转移式是 \(dp ...
分类:
其他好文 时间:
2021-06-02 16:08:48
阅读次数:
0
试除法求约数个数。 int n; int divisor(int n) { int res=0; for(int i=1;i*i<=n;i++) if(n % i == 0) { res++; if(i != n/i) res++; } return res; } int main() { whil ...
分类:
其他好文 时间:
2021-02-17 14:14:28
阅读次数:
0
原题链接 考察:容斥原理 错误思路: 枚举预处理每一个数C4n 的组合数,将p数组的每一个数求约数集合,将约数个数>=4的纳入容斥的集合内.再用容斥计数解决. 时间复杂度是10000*100*2出现次数>=4的约数个数 ,前面的时间复杂度已经到了1e6,如果个数>7就已经有超时风险,更不要说总共10 ...
分类:
其他好文 时间:
2021-02-01 12:59:29
阅读次数:
0
思路: 代码: #include<iostream> #include<stdio.h> using namespace std; typedef long long ll; int main(){ ll n; cin>>n; ll res=n; for(ll i=2;i<=n/i;i++){ if ...
分类:
编程语言 时间:
2020-11-11 16:33:00
阅读次数:
9
RT 考试的时候口胡出来的,正确性不会证,不过貌似100000内的数都是对的(现在已经会了,在此鸣谢gyz大佬) #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=5e7+10,max ...
分类:
其他好文 时间:
2020-09-24 21:27:32
阅读次数:
46
Flood Fill 可以在线性时间复杂度内找到某个点所在的连通块 1097.池塘计数 链接:https://www.acwing.com/problem/content/1099/ #include <iostream> #include <algorithm> #include <cstring ...
分类:
编程语言 时间:
2020-09-24 00:00:51
阅读次数:
38
先抄个雪花ID介绍,雪花算法: (提高聚集索引的性能) 雪花ID是用一个64位的整形数字来做ID,对应.net中的long,数据库中的bigint,雪花算法的原始版本是scala版,用于生成分布式ID(纯数字,时间顺序),订单编号等。 自增ID:对于数据敏感场景不宜使用,且不适合于分布式场景。GUI ...
分类:
Web程序 时间:
2020-08-31 13:22:30
阅读次数:
56
#include <iostream> #include <cstdio> #include <queue> #include <algorithm> #include <cmath> #include <cstring> #define inf 2147483647 #define N 10000 ...
分类:
其他好文 时间:
2020-08-07 12:34:32
阅读次数:
75
算法学习是一条漫长而又苦涩的道路。之所以漫长,是因为有关算法的学习是无穷无尽的,如果你不想经历程序员的35岁之劫难,那就要不断地学习算法,提高自己的不可替代性。之所以是苦涩,是因为算法更像是数学题,对智力是有一定要求的,学习算法的过程中总是会质疑自己,相较于一些学会就能用的技术而言,算法学习进步又不 ...
分类:
编程语言 时间:
2020-07-08 01:13:31
阅读次数:
84