入门训练(详见 算法-蓝桥杯习题(1-1))Go
基础练习(详见 算法-蓝桥杯习题(2-1))Go
基础练习(详见 算法-蓝桥杯习题(2-2))Go
算法训练(详见 算法-蓝桥杯习题(3-1))Go
算法训练(详见 算法-蓝桥杯习题(3-2))Go
算法训练(详见 算法-蓝桥杯习题(3-3))Go
算法训练(详见 算法-蓝桥杯习题(3-4))Go
算法训练(详见 算法-蓝桥杯习题(3-5))Go
算法训练(详见 算法-蓝桥杯习题(3-6))Go
算法提高(详见 算法-蓝桥杯习题(4-1))Go
算法提高(详见 算法-蓝桥杯习题(4-2))Go
算法提高(详见 算法-蓝桥杯习题(4-3))Go
历届试题(详见 算法-蓝桥杯习题(5-1))Go
历届试题(详见 算法-蓝桥杯习题(5-2))Go
蓝桥杯练习系统评测数据
链接: https://pan.baidu.com/s/1brjjmwv
密码: iieq
算法提高(PartB-10题)
/*
Torry的困惑(提高型)
*/
#include
#include
int is_prime(int x) {
int i,s = sqrt(x);
for(i = 2; i <= s; i++) {
if(x % i == 0) {
return 0;
}
}
return 1;
}
int main()
{
//("%d",is_prime(2));
int n,count=0,i=1;
long long result=1;
scanf("%d",&n);
while(count
/*
计算时间
*/
#include
#include
int b[100000][3];
int main(int argc, char *argv[]) {
int i,n=0,a;
scanf("%d",&n);
for(i=0;i
/*
最小乘积(提高型)
*/
#include "stdio.h"
#define Size 1002
int part1(int a[],int left,int right)
{
int x;
int low;
int high;
x=a[left];
low=left;
high=right;
while(lowx&&lowx&&low
/*
卡勒沃夫之弱水路三千(提高型)
*/
#include
#include
#include
char mm[105][15];
char s1[15],s2[15];
int link[105][2];
int length[105]={0};
int in[105];
int N;
typedef struct{
char name[15];
int num;
}girl;
void fun(int x)
{
int i,y;
for(i=0;i=length[y]?length[x]+1:length[y];
fun(y);
}
}
int comp(const void *a, const void *b)
{
return (*(girl *)a).num>(*(girl *)b).num?1:-1;
}
int main()
{
int i,j,T,n,f,x,y,sum=0;
girl g[105];
scanf("%d",&T);
while(T--)
{
memset(mm,0,sizeof(mm));
memset(link,0,sizeof(mm));
memset(in,0,sizeof(in));
memset(length,0,sizeof(length));
scanf("%d",&N);
n=0;
for(i=0;i
/*
最大乘积
*/
#include
#include
#include
int max;
void fun(int *val,int index,int size,int m,int cnt,int res);
int main()
{
int n,m,x,i;
int val[15];
scanf("%d",&x);
while(x--)
{
scanf("%d %d",&n,&m);
for(i=0;i max)
{
max = res;
}
return ;
}
if(index>=size)
{
return ;
}
fun(val,index+1,size,m,cnt+1,res*val[index]);
fun(val,index+1,size,m,cnt,res);
}
/*
和最大子序列
*/
#include
int a[100001];
int main()
{
int n,i1;
scanf("%d",&n);
for(i1=0;i10)
a[i1]=a[i1-1]+a[i1];
}
for(i1=0;i1sum)
sum=a[i1];
printf("%d\n",sum);
return 0;
}
/*
统计单词数
*/
#include
#include
struct ha
{ int n;
char c[21];
}hasi[1000];
int main()
{ int i1,i2;
char a[1500],b[21];
gets(a);
int o=0,p=0;
for(i1=0;a[i1];i1++)
{ if(a[i1]<='z'&&a[i1]>='a')
a[i1]-='a'-'A';
}
for(i1=0;a[i1+1];i1++)
{
if(a[i1]<'A'||a[i1]>'z'||a[i1]<'a'&&a[i1]>'Z')
{ b[o]='\0';
if(o==0)
continue;
for(i2=0;i2='A')
printf("%c",hasi[i1].c[i2]);
else
printf("%c",hasi[i1].c[i2]-'a'+'A');
printf(":");
for(i2=0;i2
/*
实数相加
*/
#include
int a[101],b[101],c[101],d[101],e[101],f[101];
int main()
{ char k[1000],l[1001];
int i1,i2,a1,b1,c1,d1,e1,f1;
gets(k);
gets(l);
int o=0;
for(i1=0;k[i1];i1++)
{
if(k[i1]=='.')
{i1++;
break;}
a[o++]=k[i1]-'0';
}
a1=o;
o=0;
for(;k[i1];i1++)
{
b[o++]=k[i1]-'0';
}
b1=o;
o=0;
for(i1=0;l[i1];i1++)
{
if(l[i1]=='.')
{i1++;
break;}
c[o++]=l[i1]-'0';
}
c1=o;
o=0;
for(;l[i1];i1++)
{
d[o++]=l[i1]-'0';
}
d1=o;
o=0;
int jiwei=0;
for(i1=b1-1,i2=d1-1;i1>=0||i2>=0;)
{
if(i1==i2)
{
f[o]=(b[i1]+d[i2]+jiwei)%10;
jiwei=(b[i1]+d[i2]+jiwei)/10;
o++;i1--;i2--;
}
else if(i1>i2)
{ f[o]=(b[i1]+jiwei)%10;
jiwei=(b[i1]+jiwei)/10;
o++;i1--;
}
else
{
f[o]=(d[i2]+jiwei)%10;
jiwei=(d[i2]+jiwei)/10;
o++;i2--;
}
}
f1=o;
o=0;
for(i1=a1-1,i2=c1-1;i1>=0||i2>=0;i1--,i2--)
{
if(i1<0)
{ e[o]=(c[i2]+jiwei)%10;
jiwei=(c[i2]+jiwei)/10;
o++;
}
else if(i2<0)
{e[o]=(a[i1]+jiwei)%10;
jiwei=(a[i1]+jiwei)/10;
o++;
}
else
{e[o]=(a[i1]+c[i2]+jiwei)%10;
jiwei=(a[i1]+c[i2]+jiwei)/10;
o++;
}
}
if(jiwei==1)
e[o++]=1;
for(i1=o-1;i1>=0;i1--)
printf("%d",e[i1]);
if(b1==0&&d1==0)
return 0;
printf(".");
for(i1=f1-1;i1>=0;i1--)
printf("%d",f[i1]);
return 0;
}
/*
项链
*/
#include
#include
int main()
{
char a[1000];
int i1,i2;
gets(a);
int max=0,n=strlen(a);
int total=0;
for(i1=0;a[i1];i1++)
{
char p='w';
total=0;
for(i2=i1;;i2++)
{ if(i2>=n)
i2-=n;
if(p=='w'||a[i2]==p||a[i2]=='w')
{
if(a[i2]!='w')
p=a[i2];
total++;
}
else
break;
if(total>=n)
break;
}
p='w';
for(i2=i1-1;;i2--)
{ if(total>=n)
break;
if(i2<0)
i2+=n;
if(p=='w'||a[i2]==p||a[i2]=='w')
{ if(a[i2]!='w')
p=a[i2];
total++;
}
else
break;
}
if(total>max)
max=total;
}
printf("%d\n",max);
return 0;
}
/*
交换Easy
*/
#include
int main()
{
int n,m,ary[1000],temp,op1,op2;
scanf("%d %d",&n,&m);
int i;
for(i=0;i
GoToTheNextPart