随笔分类 -  算法/思维/模板

摘要:(1)本质: 类似并查集里面的按秩合并 每次合并加一个启发式的操作,就是每次将一个元素少的集合合并到元素多的集合里面,这样我们就可以把时间复杂度降到O(nlogn * op) (2)例题: luogu:梦幻布丁 题目地址:P3201 [HNOI2009] 梦幻布丁 - 洛谷 | 计算机科学教育新生态 阅读全文
posted @ 2022-09-12 11:09 心若笺诗 阅读(25) 评论(0) 推荐(0)
摘要:题面: n个人排队到r个水龙头去打水,他们装满水桶的时间t1,t2,...,tn为整数且各 不相等,应如何安排他们的打水顺序才能使他们花费的时间最少? 【输入】 第1行,两个整数n(1<=n<=500)和r(1<=r<=100)。 第2行,n个正整数t1,t2,...,tn,(1<=ti<=1000 阅读全文
posted @ 2022-02-15 04:29 心若笺诗 阅读(355) 评论(0) 推荐(0)
摘要:1)快读 inline int read() { int x=0;char c=getchar(); while(c <'0' || c >'9' ) c=getchar(); while(c>='0' && c<='9' ) x=(x<<1)+(x<<3)+c-'0',c=getchar(); r 阅读全文
posted @ 2021-10-13 01:25 心若笺诗 阅读(45) 评论(0) 推荐(0)
摘要:交换元素,使序列有序,求最少交换次数 第一种是只能交换"相邻”元素,使序列有序,求最小交换次数, 假如是是序列升序,只需要求逆序对数。 3 2 1-> 1 2 3 3次 4 2 3 1 -> 1 2 3 4 2 3 1 4 (3) 2 1 3 4 (1) 1 2 3 4 (1) 正好对应每个数,和他 阅读全文
posted @ 2019-11-15 21:26 心若笺诗 阅读(223) 评论(0) 推荐(0)
摘要:给出1-n的两个排列P1和P2,求它们的最长公共子序列。 (相异) 转化问题成最长下降子序列 //为了更好的利用之前的信息,便于更新, //我们把原来记录的长度信息,改成如果有这个解,他匹配的最后的元素,的最前面的s1序列的位置是多少 #include<cstdio> #include<cstdli 阅读全文
posted @ 2019-10-24 21:38 心若笺诗 阅读(119) 评论(0) 推荐(0)
摘要://水题:求正方形长方形的个数 #include<cstdio> #include<cstdlib> using namespace std; int n,m; const int N=103; int cnt1[N][N],cnt2[N][N]; int main() { scanf("%d %d 阅读全文
posted @ 2019-08-03 09:33 心若笺诗 阅读(235) 评论(0) 推荐(0)