算法
_ymi
/(ㄒoㄒ)/~~
展开
-
algrim第三章-dp
原创 2021-11-02 22:01:52 · 114 阅读 · 0 评论 -
algm课后作业-dp
NO.1 链条切割问题NO.2 机器人两次走路NO.3 租用游艇------自底向上计算—//长度为n的链条进行切割 #include<bits/stdc++.h>using namespace std;const int N=10010;const int minn=0x0c0c0c0c;int a[N],n,r[N];int main(){ cin>>n; for(int i=1;i<=10;i++) cin>>a[i]; for原创 2021-10-13 11:37:02 · 165 阅读 · 0 评论 -
algm作业-第二章
原创 2021-10-12 19:03:40 · 74 阅读 · 0 评论 -
找指定字符串
#include<iostream>#include<cstdio>#include<cstring>using namespace std;char pattern[]="ABABCABAA";char text[]="ABABABCABAABABABAB";int n=9;int prefix[9];//长度1-9 void prefix_table(char pattern[],int prefix[]){ prefix[0]=0; int原创 2021-03-13 12:53:50 · 74 阅读 · 0 评论 -
双指针
No.1最长连续上升子序列主要想说一下,昨天写的最长上升序列是动态规划(一般只要求写出结果),,如果+连续就变成双指针了(可能要求把子列输出)emmm 昨天写的连续最大乘积是动态规划#include<bits/stdc++.h>using namespace std;int main(){ int n;cin>>n; int a[110]; for(int i=0;i<n;i++){ cin>>a[i]; } int i=0,j=1,l=1;原创 2020-10-10 19:21:57 · 107 阅读 · 0 评论 -
动态规划
No.1 硬币#include<bits/stdc++.h>using namespace std; #define MAX 0x3f3f3f3fint main(){ int A[]={2,5,7} ,M; cin>>M; int n=3; int f[M+1];//因为要用到f[M] f[0]=0;//初始化 for(int i=1;i<=M;i++){ f[i]=MAX;//全部初始化 for(int j=0;j<n;j++){原创 2020-10-09 17:56:51 · 212 阅读 · 7 评论 -
二分法
模板一 (右合法[l,r]——>[l,mid] [mid+1,r]int search_1(int l,int r){ while(l<r){ int mid=l+r>>1; if(check(mid)) r=mid; else l=mid+1; } return l;} 模板二 (左合法[l,r]——>[l,mid-1] [mid,r]计算mid时要加1int search_2(int l,int原创 2020-10-09 14:18:07 · 91 阅读 · 0 评论