随笔分类 -  / 算法

摘要:小粉兔的楼下 #include<bits/stdc++.h> using namespace std; long long N,Ans=1; long long C,G[50]; long long qPow(long long b,long long e) { long long A=1; for 阅读全文
posted @ 2024-09-19 20:33 yzc_is_SadBee 阅读(25) 评论(0) 推荐(0)
摘要:#include <bits/stdc++.h> using namespace std; int num[12],len; long long l,r,dp[11][11][11][2][2][2][2]; long long f(int p,int a,int b,bool c,bool d,b 阅读全文
posted @ 2024-09-19 20:00 yzc_is_SadBee 阅读(32) 评论(0) 推荐(0)
摘要:新鲜出炉的数位dp #include<bits/stdc++.h> using namespace std; long long a,b; long long ten[20],f[20]; long long cnta[20],cntb[20]; void solve(long long x,lon 阅读全文
posted @ 2024-09-19 19:29 yzc_is_SadBee 阅读(11) 评论(0) 推荐(0)
摘要:以下内容摘自OI-Wiki 引子 数位dp是指把一个数字按照个、十、百、千等等一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是 0~9,其他进制可类比十进制。 数位 DP:用来解决一类特定问题,这种问题比较好辨认,一般具有这几个特征: 要求统计满足一定条件的数的数量(即, 阅读全文
posted @ 2024-09-19 18:57 yzc_is_SadBee 阅读(40) 评论(0) 推荐(0)
摘要:d_f_s 附赠双倍经验,好耶! 然后爆搜就行 #include<bits/stdc++.h> using namespace std; int T,n,ans,sum[25]; void dfs(int x)//x为出牌次数 { if (x>=ans) return; //顺子 int k=0;/ 阅读全文
posted @ 2024-09-18 20:22 yzc_is_SadBee 阅读(12) 评论(0) 推荐(0)
摘要:摘自: 一看题目,像个搜索 再一看,像个广度优先搜索 既然是BFS,那我们首先要搞出一个(一堆)队列 那问题是队列里咱们存啥呢??? 首先,按照广搜解决“迷宫问题”的国际惯例,肯定要先把坐标和步数存到里面! 可是,这似乎不大够? 因为荆轲还有两种技能:隐身和瞬移。 隐身:balabala…… 瞬移: 阅读全文
posted @ 2024-09-18 19:58 yzc_is_SadBee 阅读(16) 评论(0) 推荐(0)
摘要:不如搜索 折半搜索 第一眼2^40,死的透透滴 所以想到折半 如图: 这是普通搜索: 这是折半搜索: 原谅我图画的丑 所以,我们可以对两边开展搜索 将前一半的搜索状态存入a数组,后一半存入b数组。 排序后mlogm查找即可 #include<bits/stdc++.h> using namespac 阅读全文
posted @ 2024-09-18 19:31 yzc_is_SadBee 阅读(12) 评论(0) 推荐(0)
摘要:good rmq #include<bits/stdc++.h> using namespace std; struct node { int num; int lid,rid; int w; int data; bool operator <(node i)const { return data< 阅读全文
posted @ 2024-09-18 19:07 yzc_is_SadBee 阅读(15) 评论(0) 推荐(0)
摘要:see you again #include<bits/stdc++.h> using namespace std; int n,m,x,y,v,Lok[500010],Rok[500010],Lban[500010],Rban[500010],pre[500010],ans[500010]; bo 阅读全文
posted @ 2024-09-13 20:31 yzc_is_SadBee 阅读(14) 评论(0) 推荐(0)
摘要:( •̀ ω •́ )y 好fan 题解 #include <bits/stdc++.h> using namespace std; inline int read(){ char c;int f=1,res=0; while(c=getchar(),!isdigit(c))if(c=='-')f* 阅读全文
posted @ 2024-09-11 20:35 yzc_is_SadBee 阅读(19) 评论(0) 推荐(0)