240929
edb402531f380c4f1fffb7ae50792be3f1a888d9e17a8b7e16aa81cb61c0735183de6aa123bb10f2f514f68b35c0b083ccadda3777c64b66588ba67b0472b41a37937f6a0bdecfbe789d140fe0b7ec295586d096c7ef00ab2e0510afb3c77183192d2e049a88f13c2444d670d4b249f151992f05e53906376a229ab6dc2c382df0e51a48a1e9c058dfc2f63c1649588a9bebbaa44203de077fab35c372a30e8f625756bc5bd18daaa20620564e04e342656ce677ec9b563b860c08cc381271932b16b13c7fbd406c845c3ffe0063ad263f4a4293671d0322885dbf8879aee7026b42e99708b4ab4c9eeca0a0e46aace75c84d84b67e4105fe ...
算法模板06
ddd
区间选点给定 N 个闭区间 [ai,bi][ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。
输出选择的点的最小数量。
位于区间端点上的点也算作区间内。
将每个区间按照右端点从小到大排序
从前往后依次枚举每个区间,
如果当前区间已经包含点,pass
否则,选择当前区间右端点
贪心:选择当前最好的情况
12345678910111213141516171819202122232425262728#include<iostream>#include<algorithm>using namespace std;const int N=100010;int n;struct Range{ int l,r; bool operator< (const Range &W)const{ return r<W.r; } }range[N];int main(){ cin>>n; for(int i=0; ...
240824
edb402531f380c4f1fffb7ae50792be3246927e84dc53804a5e77a2f4a3146f80846590276011d5ed8c1460a4463898f531d8b4cb7e01cd4e18aa5be290cbed6476c7c08beab6ab2d2afadf22aeaa74bd78ebfe55a62169dd6053d68a180498d6880f7e5f4743b0f84213e830ec62ea61d24b907686d23a2e1cbacffb02b5700032701ac206b43a1aa8ed5f687b8b09dc44eb1c59a0f671a23fbb4f4a60b7ae166d02220fb489d4a3731e570553407ab62a46c4eb96dd89dd30d9ca3698d38b1e931ed85320e93d1de6eec7bfdb08b25bc21f8bd7cf45df631e4e4c3e22907bd774f010c25b515ef2aaf34c94073b0ff
...
240821
edb402531f380c4f1fffb7ae50792be3c8834ac4f9d3a96e3a29a4137c8860a99040efb9ad9ab3380a04d377305b9b47d3578ab2fba7979d15d5848a624254f231388639447aed0ca49ebc65ad862368019083477a735d1eeaac5dc806415c4aa8af1aeb6fd7e126e55183c3f77ae89622a8daa14a2e110af4b0f78fd5893fd3f0ddb5343f76328d5a381042b8c7ef1264ad502422e1a67d1f548fdcb16593ca8cae44ae5b8437fab8cb19e87c6e135ca8165215ba5ef181fd37e8d8fbdd39535208913fd1eef7f2bff4ff20bc3cdc91e14b2dbe24ac4ca3b5342e08f7c231c86eb3c36f10dfb8b1b406bbfbd7a1d8dc04765b9d55542d69b ...
算法模板05
背包九讲01背包问题有N件物品和一个容量是V的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。
有限集合的最大值问题,用闫氏DP分析法:
DP问题:
状态表示f(i,j):
集合:所有只考虑前i个物品,且总体积不超过j的选法的集合
属性:max(价值最大)
状态计算:(不重不漏的分为这两种)
所有不选择第i个物品的方案(1~i-1中选,且总体积≤j)f(i-1,j)
所有选择第i个物品的方案(1~i-1中选,且总体积≤j-v[i])f(i-1,j-v[i])+w[i]
f(i,j)=max(f(i-1,j),f(i-1,j-v[i])+w[i]);
12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>using namespace std;const int MAXN = 1005;int v[MAXN]; // 体积int w[MAXN ...
算法模板04
质数的判定试除法判定质数==质数==:对于>1的整数,如果只包含1和本身这两个约束,就被称为质数或者素数
O(sqrt(n))
123456789bool prime(int x){ if(x<2) return false;//判断是否>1 else{ for(int i=2;i<=x/i;i++){ if(x%i==0) return false; } } return true;}
分解质因数从小到大枚举所有数
O(sqrt(n))
123456789101112void quite(int x){ int n=x; for(int i=2;i<=n/i;i++){//n中最多只包含一个>qprt(n)的质因子 int s=0; while(x%i==0){//i一定是质数 s++; ...
冥想
最开始听说冥想是来自于健身课堂(那时候只是在公开课上的一次简单练习,不理解meditation的底层逻辑,加上第一次接触,因此在心里没有太多的感觉。后面第一次心里接近崩溃的时候偶然想起来这种自我调节的方法,慢慢开始接触、主动学习了一些。
虽然有时候觉得它也没有网上宣传的那样玄幻,但是的确坚持了一段时间,每天晚上进行一次催眠冥想,还是确实感受到了它对我的一些影响:在冥想的过程中,我的大脑和身体是真正联结在一起的,我真真切切感受到了“抽离”,仿佛可以看到自己渐渐在柔美的声音之中沉沉睡去,让紧绷的神经松懈下来,不在会受到白天的压力所困,仿佛置身在幽雅的境地,彻底的进入平和。时间就了,也慢慢提高了自己的专注力和情绪控制能力,减轻了内耗和焦虑抑郁。除此之外,仿佛打破了自己心灵的枷锁,慢慢习惯于倾听自己内心的真实需求,把自己从焦躁的内耗情绪之中解脱出来
副作用:不知道是不是晚上带着耳机入睡的原因,白天醒来的时候还是会有困意
p:好爱最后一页,听一次爱一次!小时候看他排在前三还不理解🤣可惜是电视剧的主题曲www为什么为什么不是电影(* ̄;( ̄ *)
算法笔记03
排列数字(DFS)使用DFS进行排列(回溯),递归
123456789101112131415161718192021222324252627#include<iostream>using namespace std;const int N=10;int path[N],n;//存储状态bool st[N];void dfs(int u){ if(u==n){//走到第n个位置的时候,输出 for(int i=0;i<n;i++){ printf("%d ",path[i]); } puts(""); return; } for(int i=1;i<=n;i++){ if(!st[i]){//找到一个没有被用过的数 path[u]=i; st[i]=true; dfs(u+1);//处理下一层 ...
804
edb402531f380c4f1fffb7ae50792be330df3ccd6bee17e8be7591c8de8c9dacc6a964fb072f52302a6834ad2aa523a93a4da70d5f881e25963ea7f79f1a9aa2948150eb684e5b4f632bf94e1dfa348ec69ebd764c3381ca99e451e9ab505163135ea44c5422228f3dae4fe897feb89711a9e56423aad91429f56649ade65ce902d32726bb7779a37533fee6f5205abb17e7a043be31af6dd4e6634148c66752b7a8596918d0598ac8208de76196b319233821fcd4e14be5e403caa04da1a96c59d4d4b4c75c1b872f983bb4074b722f048e22da436151f5baf7b44996d8796f260635117a1410cbd8c81ff0e12ecfba4d05aa3bf860520c7 ...
算法模板02
链表(用数组),单链表:存储图和树双链表:优化某些题
做法:
e[],ne[]
-1表示结尾
==演示==:
head->0->1->2->3->-1值: 3 5 7 9
e[0]=3 e[1]=5 e[2]=7 e[3]=9
ne[0]=1 ne[1]=2 ne[2]=3 ne[3]=-1
单链表的实现:
12345678910111213void init(){ head=-1; idx=0;//当前可以从0号点开始分配}void add_to_head(int x){ e[idx]=x,ne[idx]=head,head=idx++;}void add(int k,int x){//将x插入第k个点后面 e[idx]=x,ne[idx]=ne[k],ne[k]=idx++;}void remove(int k){ ...