登录社区云,与社区用户共同成长
邀请您加入社区
相关题目:字符串中最长的连续出现的字符https://www.acwing.com/problem/content/773/解题思路:运用到双指针法,移动的中途发现在末尾加一个空格会使双指针移动操作简便快捷。下面是双指针的移动过程,如图所示。相关代码:#include<iostream>#include<string>using namespace std;int main
P5718【深基4.例2】找最小值#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include <iomanip>
问题描述 编写一函数lcm,求两个正整数的最小公倍数。样例输入一个满足题目要求的输入范例。例:3 5样例输出与上面的样例输入对应的输出。例:数据规模和约定 输入数据中每一个数的范围。 例:两个数都小于65536。#include<iostream>#include<stdlib.h>using namespace std;int lcm(int a,int b){in
题目标题: 排它平方数小明正看着 203879 这个数字发呆。原来,203879 * 203879 = 41566646641这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。具有这样特点的6位数还有一个,请你找出它!再归纳一下筛选要求:6位正整数每个数位上的数字不同其平方数的每个数位不含原数字的任何组成数位答
#include<iostream>#include<algorithm>using namespace std;bool cmp(int a,int b){return a>b;}int main(){int m,c;int a[210],b[210];cin>>m>>c;if(m>=c){//这里一定要判一下,如果木板比牛多,就是结束
AcWing 665. 倍数#include <iostream>#include <cstring>#include <algorithm>using namespace std;int main(){int a,b;cin >> a >> b;if(a % b == 0 || b % a == 0) printf("Sao Multi
#include<iostream>#include<queue>using namespace std;char room[23][23];int dir[4][2] = {{-1,0},{0,-1},{1,0},{0,1}};int Wx, Hy, num;#define CHECK(x,y){x<Wx&&x>=0&&y>
加油!!!!#include <iostream>using namespace std;int main (){int v1,v2,t,s,l;cin>>v1>>v2>>t>>s>>l;int lw,lr;lw=lr=l;int i=0;while(1){if(lw==0||lr==0)break;...
首先,什么是左值、右值?左值是能出现在等号左边和右边的变量,右值是只能出现在等号右边的变量(或表达式)。左值引用为 & , 而右值引用为 &&。那么为什么需要右值引用呢?主要是为了处理c++临时对象的低效的问题,使用右值引用可以减少不必要的拷贝构造。举个例子:#include <iostream>using namespace std;class A {publ
题目链接#include<iostream>#include <vector>using namespace std;vector<int> prime(50000, 1);//声明一个初始大小为50000且初始值都为1的向量int main() {for(int i = 2; i * i < 50000; i++)for(int j = 2; j * i
输入一行数据,n个数据(偶数个),以中间为界限,前n/2个数按升序输出,后n/2个数按照降序输出#include <iostream>using namespace std;#include<stdio.h>#include<stdlib.h>#include<algorithm>int main(){int n,i;int a[100];while
方格填数如下的10个格子填入0~9的数字。要求:连续的两个数字不能相邻。 (左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。1580#include<iostream>#include<algorithm>#include<cstdio>...
坑点:memset一定会重新染色整个数组,时间复杂度一定是O(10^6),太慢了,本题可以不用memset,所以就不要染色#include <iostream>#include <algorithm>using namespace std;const int N=1005;char a[N][N];int n,m;void dye(int x,int y){for(int
A#include <iostream>#include <cstring>using namespace std;const int maxn = 10;bool bol[maxn];char maps[maxn][maxn];int n, k, cnt, way;void dfs(int h){if(cnt == k){way++;return ;}if(h >=
c语言中存在两个函数表示一个数的绝对值abs()和fabs();要想引用这两个函数则需要引用头文件 #include<math.h>abs函数是对整数进行取绝对值fabs函数是对浮点型进行取绝对值cplusplus对abs和fabs()函数的理解如下:#include <math.h>int a=abs(-1);//里面可以表示一个表达式...
凑数公式:最大凑不出数m=(p-1)(q-1)-1裴蜀定理:若p,q最大公约数为d,那么一定存在整数a,b使ap+bq=d,若ab互质,则存在xy使ax+by=1.打表代码:#include<stdio.h>#include<iostream>#include<algorithm>#include<cstring>#include<cmath&
多重背包问题:dp[V];for(int i=1;i<=n;i++)for(int j=V;j>=v[i];j--){int r=0;for(int k=0;k<=s[i];k++)if(j-k*v[i]>=0)r=max(r,dp[j-k*v[i]]+k*w[i]);}dp[j]=r;}#include<iostream>using namespace std
来源:《算法竞赛进阶指南》,微软面试题 , HAOI2008输入样例:41254输出样例:4注解:Xi可能为正可能为负,不过不影响,我们要求的是绝对值之和经过推导,需要求的目标变为👇且有这可以抽象为,找出数轴上的点到(c1,c2,c3......cn)这些点的绝对距离之和的最小值,经过分析,取中间点可以得到最小值.代码实现:#include <iostream>#in...
#include<iostream>#include<vector>#include<string>using namespace std;vector<int> gadd(vector<int> &m,vector<int> &n){vector<int> l;int t=0;for(int i=
01二维:二维下的状态定义f[i][j]是前 i件物品,背包容量 j下的最大价值#include<stdio.h>#include<iostream>#include<algorithm>#include<cstring>#define N 1005using namespace std;int v[N],w[N];int f[N][N];int n
【例】金块问题:老板有一袋金块(共n块),最优秀的雇员得到其中最重的一块,最差的雇员得到其中最轻的一块。假设有一台比较重量的仪器,我们希望用最少的比较次数找出最重和最轻的金块解法一:将问题分为找到最大和最小两个子问题,对数据各进行一次遍历,找到最大和最小值#include<iostream>using namespace std;int max=0,min=9999;int main(
给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1,N=3时,S=1+11+111=123。输入格式:输入数字A与非负整数N。输出格式:输出其N项数列之和S的值。输入样例:1 3输出样例:123#include <stdio.h>#include <iostream>using namespa
#include<iostream>using namespace std;int main(){string ss;string re="";getline(cin,ss);int len=ss.length();int st=0,i=0;while(i<len){if(ss[i]=='6'){int cnt=1;while(ss[++i]=='6').
代码如下#include <iostream>using namespace std;void swap(int *a,int *b);void fast_sort(int *arr,int left,int right);int main(){int arr[]={2,1,4,3,6,5};int size=sizeof(arr)/sizeof(arr[0]);for(int i=0
//计算1!+2!+…+10!//每次循环执行完第二个的for循环后,记得将sum1重新设置为1!#include<iostream>using namespace std;int main(){int i,sum1,n,sum2;sum2=0;for(int n=1;n<=4;n++){sum1=1; //每次循环执行完i的for循环后,记得将sum1重新设置为1!for(in
原题连接:https://www.acwing.com/problem/content/800/可参考子矩阵的和进行辅助理解:https://blog.csdn.net/weixin_62971133/article/details/123146409?spm=1001.2014.3001.5501#include<iostream>using namespace std;const
蓝桥杯_2016/*生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。*/#include<iostream>#include<cst.
给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。输入描述:输入为两行:第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000)第二行为n个正整数Ai,以空格隔开。输出描述:输出所求的方案数示例1输入5 15 5 5 10 2 3输出4#include <i
问题描述输入A、B,输出A+B。输入格式输入的第一行包括两个整数,由空格分隔,分别表示A、B。输出格式输出一行,包括一个整数,表示A+B的值。样例输入12 45样例输出57数据规模与约定-10000 <= A, B <= 10000。#include <iostream>using namespace std;int main(){int a, b;cin >>
问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式 输入一行,包含一个正整数n。输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。样例输入52样例输出899998989989998899数据规模和约定 1<=n<=54。#include<iost
#include<iostream>using namespace std;#define NUM 50//物品数量上限#define CAP 1500//背包容量上限int w[NUM];//物品的重量int v[NUM];//物品的价值int x[NUM];//记录哪个物品被选择int p[NUM][CAP];//用于递归的数组 p[i][j]的意思是,当背包容量暂时限定为j时,物
参数解析__牛客网写一个暴力点写法#include<iostream>#include<vector>#include<string>using namespace std;int main(){vector<string> ans;string str;getline(cin, str);int begin = 0;//int end = 0;in
#include<iostream>using namespace std;int n,e[250],f[250][250];int main(){int i,j,k,mx=0;cin>>n;for(i=1;i<=n;i++){cin>>e[i];e[n+i]=e[i];}for(j=2;j<=n*2;j++)for(i=j-1;i&g
默认情况下,c++编译器至少给一个类添加三个函数默认构造函数(无参 函数体为空)默认析构函数(无参,函数体为空)默认拷贝构造函数,对属性惊醒值拷贝构造函数调用规则如下:如果用户定义有参构造函数 c++不在提供默认无参构造,但是会提供默认拷贝构造如果用户定义拷贝构造函数,c++不在提供其他构造函数//4.2.4 构造函数调用规则#include<iostream>using namesp
//当右端点r固定了之后//(s[r]-s[l-1])%k==0 其实只要 s[r]与s[l-1]的余数相同即可//我们将l的范围改一下 0~r-1 即是s[r]与s[l]的余数相同即可//cnt[s[i]%k]记录s[i]除k的余数//可以通过枚举右端点 然后查找一下 余数相同的加上 之后 cnt[s[i]%k]++即可//注意点 cnt[0]=1 0 可以被任何数整除#include<i
#include <cstdio>#include <cstring>#include <iostream>using namespace std;int a[101],b[101],c[101],d,i;void init(int a[]){//读取字符串并逆序转换为数组string s;cin>>s;a[0]=s.length();for(i=1
案例.cpp文件#define _CRT_SECURE_ND_WARNINGS#include<iostream>#include<string>using namespace std;#include"circle.h"#include"point.h"/*设计一个圆类和一个点类,计算点和圆的关系假如圆心坐标为x0,y0,半径为r,点的坐标为x1,y1*///利用全局函数
s.substr(i,j) :截取字符串 获得字符串s中从第0位开始的长度为5的字符串代码一、(比较推荐)#include<iostream>#include<cstring>using namespace std;bool palindrom(string s){int len = s.size();for(int i = 0; i < len / 2; i++){
7-9 用天平找小球 (10 分)三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。输入格式:输入在一行中给出3个正整数,顺序对应球A、B、C的重量。输出格式:在一行中输出唯一的那个不一样的球。输入样例:1 1 2输出样例:C#include<iostream>using namespace std;int main(){int a,b,c;cin&
基础算法总结就两天准备蓝桥杯了,将就写写#include<iostream>#include<cstring>#include<vector>#include<math.h>#include<algorithm>#include<set>//#include<bit/stdc++.h>using namespace
将1到9这九个数字分成3个三位数a,b,c,每个数字恰好出现一次,要求a:b:c=1:2:3。要求按照"a b c"的格式输出所有解, 每行一个解。直接暴力法解#include<iostream>using namespace std;int main(){for (int a = 1; a <= 9; a++) {for (int b = 1; b <= 9; b++)
#include <iostream>using namespace std;const int MAXN = 100;int arr[MAXN];int dp[MAXN];int max(int a,int b);int main(){int n;cout << "请输入序列数:" << endl;cin >> n;for(int i=0;i<
#include <bits/stdc++.h>#define IOS ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)#define _zero(a) memset(a, 0, sizeof(a))#define _far(a) memset(a, 0x3f,sizeof (a))#define __far(a) memset(a
1.无参无返#include<iostream>using namespace std;void test1(){cout<<"this is test01"<<endl;}int main(){test1();}2.有参无返#include<iostream>using namespace std;void test2(int a){cout<
1。各个元素不重复abc,acb,.......用next_permutataion()求全排列#include<iostream>#include<algorithm>using namespace std;int main(){string s;cin>>s;sort(s.begin(),s.end());do{cout<<s<<en
/*2020-1+2-3+4-5....+-n的值(n为奇数时减,偶数时加)*/#include<iostream>using namespace std;int main(){int i,sum,n;sum=2020;//第1空cout<<"n=";cin>>n;i=1;while( i<=n){if( i%2==1 ) //第2空{sum-=i;}el
题目描述源代码思路:我做这道题的时候,实不相瞒,我不会,我做了一个小时真的 就当时再次怀疑自己的coding能力这次B组的第二题啊 就是找不窍门,硬是做不出来呜呜呜 我真的太难了 在这里分享一下心情(sorry)言归正传:首先根据数学知识我们知道,等差数列的递推公式为an = a1 + (n-1) * d因此我们只需要遍历d和a1就可以得到an,然后在对a1和an进行素数判断即可look code
week3-day9作业Description读取一个字符串,字符串可能含有空格,将字符串逆转,原来的字符串与逆转后字符串相同,输出0,原字符串小于逆转后字符串输出-1,大于逆转后字符串输出1。例如输入 hello,逆转后的字符串为 olleh,因为hello 小于 olleh,所以输出-1注意最后的判断一定要这么写,因为strcmp标准C中并不是返回-1和1,而是负值和正值int result
/*算术基本定理唯一分解定理*/#include<iostream>using namespace std;int main(){int n,i=2;cin>>n;cout<<n<<"=";do{while(n%i==0)//n能被i整除,就重复做除法操作{cout<<i;n/=i;if(n!=1) cout<<"*";}i+
蓝桥杯
——蓝桥杯
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net