摘要: 题目链接:https://www.luogu.com.cn/problem/P1036 void dfs(int n,int k,int cnt,int i,int res) { if(cnt==k){ bool ok=true; for(int i=2;i*i<=res;i++){ if(res% 阅读全文
posted @ 2025-03-09 19:59 Marinaco 阅读(42) 评论(0) 推荐(0)
摘要: 生成子集 将是否选取记为0/1,那么组合的方案可以转化为一个二进制数 共有2^n个方案数 for(int i=0;i<(1<<n);i++){//i代表选取的方案 //初始化 for(int k=0;k<n;k++){//(1<<k从右往左匹配) if(i&(1<<k)){//选到第n-k个数,(从 阅读全文
posted @ 2025-03-09 19:31 Marinaco 阅读(11) 评论(0) 推荐(0)
摘要: 题目链接:https://www.luogu.com.cn/problem/P2234 题意:略 思路: 可以用set二分来做,在线插入元素,对set进行lower_bound查找插入的元素 如果没找到说明插入的元素比之前的都大,直接abs(x-big) 如果找到,要看看两侧的哪个差值与插入的元素小 阅读全文
posted @ 2025-03-09 18:40 Marinaco 阅读(13) 评论(0) 推荐(0)
摘要: int a[maxn],b[maxn]; int res; void merge(int l,int r){ if(l==r)return; int mid=l+r>>1; merge(l,mid);merge(mid+1,r); int i=l,j=mid+1,p=l; while(i<=mid& 阅读全文
posted @ 2025-03-09 15:51 Marinaco 阅读(8) 评论(0) 推荐(0)
摘要: pi数组存储着以i位置为结尾的最长匹配真前后缀的长度 模式串:s2 主串:s1 str = s2 + "#" + s1 kmp算法能够快速找到模式串在主串中的位置(当pi的大小与模式串长度一致时,说明匹配。匹配位置:i-2*m(因为还要减去模式串在str中的长度))和数量! 时间复杂度O(n) 这个 阅读全文
posted @ 2025-03-09 09:56 Marinaco 阅读(45) 评论(0) 推荐(0)
摘要: 字符串哈希重点在于将字符串映射成一个P进制数字 P通常取131 ull p[maxn],h[maxn]; const int P=131; void init(){ p[0]=1,h[0]=0; for(int i=1;i<=n;i++){ p[i]=p[i-1]*P;// p[i] -> p^i 阅读全文
posted @ 2025-03-09 09:18 Marinaco 阅读(26) 评论(0) 推荐(0)
//雪花飘落效果