当前位置: 首页 > news >正文

网站开发工作前景优化快速排名公司

网站开发工作前景,优化快速排名公司,网站后台怎么做下载链接,dedecms做网站教程目录 头文件与STL动态规划最大数组子串和最长公共子序列最长连续公共子串最长递增子序列最大上升子序列和0-1背包多重背包多重背包问题 I整数拆分最小邮票最大子矩阵 数学问题朴素法筛素数线性筛素数快速幂 石子合并锯木棍并查集Dijkstra单源最短路Python进制转换(整数无限大)全… 目录 头文件与STL动态规划最大数组子串和最长公共子序列最长连续公共子串最长递增子序列最大上升子序列和0-1背包多重背包多重背包问题 I整数拆分最小邮票最大子矩阵 数学问题朴素法筛素数线性筛素数快速幂 石子合并锯木棍并查集Dijkstra单源最短路Python进制转换(整数无限大)全排列神奇的口袋全排列II放苹果求第k小八皇后问题哈夫曼编码KMP算法遍历建立二叉树 头文件与STL #include iostream #include cstring #include algorithm using namespace std;vector.insert(vector.begin(),2,99)//在头部插入2个99 vector.erase(vector.begin() 5, vector.end()) //删除第5个以后的元素mapstring,int map.insert(pairstring, int()) map.count() //0或1 map.earse() //删除string s; s.find() s.substr(int start,int length) //切割子串 //输入含空格字符串 getline(cin,s); //优先队列 priority_queueint,vecotrint,greaterint; //less是降序 python输入 import sys for line in sys.stdin:arr line.split() //拼接列表 .join(list)a int(arr[0]) 动态规划 最大数组子串和 dp[i]其实代表的是以i结尾的最大子串和 for(int i0;in;i){cina[i];// 需要额外的ans存储max因为是子串dp[i1]max(dp[i]a[i],a[i]);ansmax(dp[i1],ans); }最长公共子序列 动态规划 for(int i1;is1.size();i){for(int j1;js2.size();j){if(s1[i-1]s2[j-1])dp[i][j]dp[i-1][j-1]1;else dp[i][j]max(dp[i-1][j],dp[i][j-1]);} }最长连续公共子串 //t存储公共子串在s1中的末尾位置 int t0; //最大长度要额外的maxLen存储max因为是子串 int maxLen0; for(int i1;in;i){for(int j1;jm;j){if(s1[i-1]s2[j-1]){dp[i][j]dp[i-1][j-1]1;// 号确保 如果不唯一则输出s1中的最后一个。if(dp[i][j]maxLen){maxLendp[i][j];//存储公共子串在s1中的末尾位置可以输出子串ti-1;}} } }最长递增子序列 https://www.nowcoder.com/practice/cf209ca9ac994015b8caf5bf2cae5c98?tpId40tagstitledifficulty0judgeStatus0rp1sourceUrl dp[i]只代表以i结尾的最长递增子序列数 for(int i0;in;i){//初始化最长为本身 1dp[i]1;for(int j0;ji;j){//dp[i]代表以i结尾的最长递增子序列数if(a[i]a[j])dp[i]max(dp[j]1,dp[i]);ansmax(dp[i],ans);} }最大上升子序列和 和上述最长递增子序列思路一致不过dp[i]代表以i结尾的最长递增子序列的和用ans存储结果 0-1背包 int dp[1001][1001];//代表前i个物体背包为j的最大价值 int n,bag; int v[10001],w[10001]; cinnbag; for(int i1;in;i){cinv[i]w[i]; } dp[0][0]0; for(int i1;in;i){for(int j1;jbag;j){if(jv[i]){dp[i][j]max(dp[i-1][j-v[i]]w[i],dp[i-1][j]);}else{dp[i][j]dp[i-1][j];}} } coutdp[n][bag];多重背包 每种物品无限件 for(int i1;in;i){for(int jv[i];jm;j){dp[j]max(dp[j],dp[j-v[i]]w[i]);} }多重背包问题 I 第 i 种物品最多有 si件 //将 si拆成多个物品即01背包while(s--) {a[t]v;b[t]w; }//死拆把多重背包拆成01背包整数拆分 一个整数总可以拆分为2的幂的和 //奇数 if(i%2)dp[i]dp[i-1]; //偶数 没想明白*** else dp[i](dp[i-1]dp[i/2])%1000000000;最小邮票 dp[0][0]0; for(int i1;im;i){//代表集不齐dp[0][i]1e9; }for(int i1;in;i){for(int j1;jm;j){if(j-a[i]0)dp[i][j]min(dp[i-1][j-a[i]]1,dp[i-1][j]);elsedp[i][j]dp[i-1][j];} }最大子矩阵 子矩阵的和pivot - dp[k-1][j] - dp[i][q-1] dp[k-1][q-1] for (int i 1; i n; i) {for (int j 1; j n; j) {cin matrix[i][j];//计算机前缀和dp[i][j] dp[i - 1][j] dp[i][j - 1] - dp[i - 1][j - 1] matrix[i][j];}}int ans INT_MIN;//记录最大子矩阵位置int x1,x2,y1,y2;for (int i 1; i n; i) {for (int j 1; j n; j) {int pivot dp[i][j];for (int k 1; k i; k) {for (int q 1; q j; q) {if((pivot - dp[k-1][j] - dp[i][q-1] dp[k-1][q-1])ans){ans max(ans, pivot - dp[k-1][j] - dp[i][q-1] dp[k-1][q-1]);x1k;x2i;y1q;y2j;}}}}}cout ansendl;coutx1y1 x2y2endl;数学问题 朴素法筛素数 求n以内的所有素数时间O(nlog(logn))【不是最优例如14会被2和7筛重复2次】 void get_primes(int n){for(int i2;in;i){//i被筛了直接跳过if(st[i]) continue;//i是素数添加进数组,并筛掉与i成倍数的非素数else {primes[cnt ] i;for(int j2*i;jn;ji){//j一定不是素数st[j]true;}}} }线性筛素数 时间O(n)解决重复筛 forint i2;in;i){//i没被筛加入if(!st[i]) primes[prime_count]i;for(int j0;jprime_count;j){if(prime[j]*in) break;//翻倍一个数 * 素数一定为合数 st[primes[j]*i]true;//退出循环避免之后重复进行筛选if(i%primes[j]0) break;} }快速幂 int qmi(int a,int b, int p){if(b0)return 1 ; int k qmi(a,b/2,p)%p;// k*k可能会超过int if(b%20)return (1LL*k*k) %p;else return ((1LL*k*k)%p*a)%p;}石子合并 贪心只能合并相邻的最小的两堆 int n;int min_idx0;int min_sum1e7; // 边界处理ve.push_back(1e7);int ans0;cinn;for(int i1;in;i){int x;cinx;ve.push_back(x);if(min_sumve[i]ve[i-1]){min_sumve[i]ve[i-1];min_idxi;}}while(ve.size()2){ans min_sum;ve[min_idx]ve[min_idx]ve[min_idx-1];ve.erase(ve.begin()min_idx-1);min_sum1e7; // min_idx0;if(ve.size()2) break; for(int i1;ive.size();i){if(min_sumve[i]ve[i-1]){min_sumve[i]ve[i-1];min_idxi;}}}coutansendl; 锯木棍 贪心-思想是WPL最小带权路径,永远合并最小的两个 #include iostream #include queue #include vector #include algorithm using namespace std; //自定义比较结构体 struct cmp{//函数重载 注意两个括号bool operator()(int a,int b){//稳定if(ab) return false;else return ab;} };int main(int argc, char** argv) {//priority_queueint,vectorint,greaterint que;priority_queueint,vectorint,cmp que;int n,l;cinnl;int tmp;int ans0;while(n--){cintmp;que.push(tmp);} while(que.size()!1){int aque.top();que.pop();int bque.top();que.pop();que.push(ab);ansansab;}coutans; return 0; }并查集 int Find(int a){int xa;while(s[x]0){xs[x];}return x; } void Union(int a,int b){root1Find(a);root2Find(b);if(root2root1)return ;else{s[root2]root1;}}Dijkstra单源最短路 int g[N][N]; // 存储每条边 int dist[N]; // 存储1号点到每个点的最短距离 bool st[N]; // 存储每个点的最短路是否已经确定// 求1号点到n号点的最短路如果不存在则返回-1 int dijkstra() {memset(dist, 0x3f, sizeof dist);dist[1] 0;for (int i 0; i n - 1; i ){int t -1; // 在还未确定最短路的点中确定一个最短的点for (int j 1; j n; j )if (!st[j] (t -1 || dist[t] dist[j]))t j;// 用t更新其他点的距离for (int j 1; j n; j )dist[j] min(dist[j], dist[t] g[t][j]);st[t] true;}if (dist[n] 0x3f3f3f3f) return -1;return dist[n];}Python进制转换(整数无限大) import sysfor line in sys.stdin:a line.split()aint(a[0])bbin(a)s(b[2:][::-1])print(int(s,2)) 全排列 回溯法 void dfs(int k){if(kn1){for(int i1;in;i){coutarr[i] ;}cout\n;return ;}for(int i1;in;i){//还没访问的数if(!st[i]){st[i]true;// 存储第k个数arr[k]i;dfs(k1);// 恢复-现场st[i]false;}} } int main() { cinn;dfs(1);} 神奇的口袋 有一个神奇的口袋总容积是40有n个物品,体积为Vi装满40有多少种装法 void dfs(int u,int j){if(u40){ans; }else{//从j开始前面用过的舍弃掉防止重复for(int ij;in;i){if(!st[i]){st[i]true;dfs(uv[i],i);st[i]false;}}} }全排列II 带有重复元素的全排列 void dfs(int k){if(kn1){for(int i1;in;i){coutarr[i] ;}cout\n;return ;}for(int i1;in;i){//还没访问的数if(!st[i]){st[i]true;// 存储第k个数arr[k]i;dfs(k1);// 恢复-现场st[i]false;//***当与后一个元素重复时跳过不排列,且这一步要在恢复现场之后做while(s[i1]s[i])i;}} } int main() { cinn;//使重复的元素排在一起sort(a,an);dfs(1);}放苹果 把M个同样的苹果放在N个同样的盘子里允许有的盘子空着不放问共有多少种不同的分法 //处理边界 for(int i0;im;i){//为0的可以不用处理数组默认为0//1个盘子的dp[i][1]1; } for(int i0;in;i){//0个苹果的dp[0][i]1; }for(int i1;im;i){for(int j1;jn;j){//如果盘子多多余的用不到的盘子都是没用的if(ji){dp[i][j]dp[i][i];}//如果苹果多dp[i][j]等于 有空盘子的(挑一个盘子为空)没有空盘子(每个盘子初始都放一个苹果)的状态else{dp[i][j]dp[i][j-1]dp[i-j][j];}} }求第k小 使用快排划分的思想 #include iostream #include algorithm /**求第k小 */ using namespace std; int n; int a[10001]; int k; void partition(int start,int end) {int pivota[start];int lstart;int rend;while(lr) {while(a[l]pivot) {l;}while(a[r]pivot) {r--;}swap(a[l],a[r]);}a[l]pivot;if(lk-1) {couta[l];return ;}else if(lk){partition(l1,end);}else{partiton(start,l);} }int main(int argc, char** argv) {cinn;cink;for(int i0; in; i) {cina[i];}partition(0,n-1);return 0; }八皇后问题 哈夫曼编码 priority_queueint,vectorint,greaterint q; int alpha[26]; //去最小的两个KMP算法 //字符串下标都从0开始 void getNextTable(int m){int j0;next[0]-1;int i-1;while(jm){if(i-1 || pattern[j]pattern[i]){i;j;next[j]i;}else{inext[i];}}return ; }int kMP(string a,string b){int i0,j0;while(injm){if(j-1 || s[i]pattern[j]){i;j;}else{jnext[j];}}if(jm){return i-j1;}else{//匹配失败return -1;} }遍历建立二叉树 TNode(char c):data©,left(nullptr),right(nullptr){}; using TreeNode struct TNode{char data;struct TNode* left;struct TNode* right;TNode(char c):data(c),left(nullptr),right(nullptr){}; };TreeNode* Build(TreeNode* root,char c){if(c#)return NULL; // C style(TreeNode*)malloc(sizeof(TreeNode))rootnew TNode(c);char c1s[cnt];root-leftBuild(root-left,c1);char c2s[cnt];root-rightBuild(root-right,c2);return root; }void Inorder(TreeNode* root){if(root-left)Inorder(root-left);coutroot-dataendl;if(root-right)Inorder(root-right);} void postOrder(TreeNode* root){}int main(int argc, char** argv) {TreeNode* TNULL;TBuild(T,s[cnt]);Inorder(T);return 0; }
http://www.dnsts.com.cn/news/142798.html

相关文章:

  • 南宁网站建设策划方案怎么查网站的外链数量
  • 酒店建设网站的意义网站一级页面标题怎么做的
  • t恤定制网站网站的宣传与推广
  • 宁波建设局网站郑建华山东住房城乡建设厅网站
  • 合肥房产网官方网站做网站需要哪个专业
  • 班级网站建设维护代理app软件
  • 免费在线网站建设网站开发公司企业官网
  • 织梦网站导航如何删除外国人讲汉语做网站的视频
  • 做网站p图工具做网站重要标签
  • wordpress 古典wordpress 主机伪静态404.php seo
  • 自己做网站怎么赢利建设信用网站的作用
  • 网站的首页怎么做如何制作app软件演示教程
  • 网站视觉设计规范阿德莱德做网站
  • 做网站什么软件好王者荣耀做网站
  • 国内网页做的好看的网站优秀电商设计网站
  • 微信个人商城网站模板免费下载学校网站设计的功能
  • 卢氏县住房和城乡规划建设局网站最新新闻热点事件2024
  • 校庆专题网站建设方案网站建设租用服务器
  • 东营市做网站编程网站入口
  • 做彩票网站违法网站模板外包
  • qq空间 同步 wordpress免费推广软件平台seo博客
  • 网站交换链接怎么做有什么做家常菜的网站
  • 做织梦网站时图片路径显示错误商城网站建站方案
  • 门户网站和部门网站的区别沈阳正规的男科医院排名
  • 做暧暖ox网站wordpress 根据id获取分类名称
  • 网站开发技术标准企业网站模板源码有哪些
  • 期货做程序化回测的网站佛山市网站建设
  • 制作游戏网站沙漠风网站建设6
  • 高端响应式网站设计百度一下百度一下
  • 网站源码分享网个人求职网站如何做