![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
c与c++实践
算法题
菜刀队
这个作者很懒,什么都没留下…
展开
-
最短路问题
最短路问题可以分为两种,单源最短路和多源汇最短路。单源最短路问题分为:正权边问题和存在负权边的问题。(n为点数,m为边)正权边问题:1.朴素dijkstra算法时间复杂度为O(n^2),适用于稠密图,通常用邻接矩阵存图。核心代码。int g[N][N];//存图int dis[N];//存起点到当前点的距离bool st[N];//判断点是否被更新int dijkstra(){ memset(dis,0x3f,sizeof dis); dis[1]=0;//初始化起点原创 2021-08-02 22:23:34 · 135 阅读 · 0 评论 -
洛谷P1249
链接:link//贪心法本题3,4需要额外处理,其余则用从2累加到sum==n||sum-n>1,x=sum-n;x则为累加中需要去掉的一项。# include <bits/stdc++.h>using namespace std;# define ll long longint n;vector<int> mul(vector<int> &xp,int x){ vector<int>c;int t=0; for原创 2021-07-09 12:39:11 · 136 阅读 · 0 评论 -
洛谷P3397
链接: link.本题可以直接使用二维差分。给以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵中的所有元素加上c。S[x1, y1] += c, S[x2 + 1, y1] -= c, S[x1, y2 + 1] -= c, S[x2 + 1, y2 + 1] += c# include <bits/stdc++.h>using namespace std;# define ll long longconst int N=1000+10;int a[N][N];原创 2021-07-09 12:06:16 · 64 阅读 · 0 评论 -
1807待改
下面展示一些 内联代码片。#include<iostream># include <cstdio># include <vector># include <algorithm># define ll long longusing namespace std;struct road{ int u,v; int dis; int link;}p[50001];int h[1501];int n,m;int vis[1原创 2021-04-19 20:37:52 · 71 阅读 · 0 评论 -
第十二届蓝桥杯F题
递归。#include<iostream># include <cstdio># include <vector># include <algorithm># define ll long longusing namespace std;int a[101];int n;int b[3]={-1,0,1};int w[100001];void fx(int i,int weight){ if(i==n+1) {原创 2021-04-19 09:37:44 · 91 阅读 · 0 评论 -
超时待改
java B [蓝桥杯2018决赛]版本分支//超时emm#include<iostream># include <cstdio># include <vector># define ll long longusing namespace std;int a[100001];int vis[100001];int find(int fa,int son){ while(a[son]!=fa&&a[son]!=1&&原创 2021-04-17 19:59:47 · 44 阅读 · 0 评论 -
PTA-011A-B问题
本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。代码如下# include <iostream># include <string>int i,j;using namespace std;int main(){ string a,b; getline(cin,a); getline(cin,b); for(j=0;a[j]!='\0';++j){原创 2021-01-25 16:28:04 · 107 阅读 · 0 评论 -
斐波那契数列代码
include <stdio.h>int main (void){int a;int f1 = 1,f2 = 1,f3;int i;scanf("%d",&a);//输入的a有取值范围if ((a == 1)||(a == 2)){printf(“1\n”);}else if ((a>1)&&(a<=40)){for (i = 3;i<=a;++i){f3=f2+f1;f1=f2;f2=f3;}printf("%d\原创 2020-10-11 15:51:18 · 879 阅读 · 0 评论 -
求一百以内的完全平方数
//求一百以内的完全平方数include <stdio.h>include <math.h>void f(int );int main (void){int i;for (i = 1;i<=100;++i){f(i);}return 0;}void f(int a){int b;b = (int)sqrt(a);if (a == b*b){printf("%d\n",a);}}原创 2020-10-07 19:42:52 · 1169 阅读 · 0 评论 -
求一百以内的素数,函数
//求一百以内的素数include <stdio.h>void f(int );int main (void){int i;for (i = 2;i<=100;++i){f(i);}return 0;}void f(int x){int i;for ( i = 2;i<x;++i){if (x%i == 0)break;}if ( i ==x)printf("%d\n,x);}//本程序关键在于构造求素数的函数,重点循环中最后输出的i与x原创 2020-10-07 19:32:43 · 746 阅读 · 1 评论 -
PTA,L1-006连续因子c代码
*一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数 N(1<N<231 )。输出格式:首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。代码:# include <s原创 2021-01-17 19:38:21 · 387 阅读 · 0 评论