《信息学奥赛一本通 编程启蒙 C++版》 3381-3390(10题)

1、3381:【例66.1】 图论入门

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

信息学奥赛一本通-编程启蒙3381:【例66.1】 图论入门

https://www.douyin.com/video/7297087357625453863

/*
3381:【例66.1】 图论入门(编程启蒙)
http://bas.ssoier.cn:8086/problem_show.php?pid=3381
https://blog.csdn.net/qq_65448545/article/details/134749558
*/
#include <iostream>
using namespace std;
int main(){
    int a[1005][1005],n,m,s=0,sum=0,b;
    cin >> n >> m;
 
    for(int i = 1;i<=n;i++){
        for(int j = 1;j<=n;j++){
            cin >> b;
            if(b != 0){
                sum++;
            }
            a[i][j] = b;
        }
    }
    cout << m << " ";
    for(int i = 1;i<=n;i++){
        if(a[m][i] != 0){
            s++;
        }
    }
    cout << s << " ";
    s = 0;
    for(int i = 1;i<=n;i++){
        if(a[i][m] != 0){
            s++;
        }
    }
    cout << s << endl;
 
    cout << sum;
 
}



2、3382:【例66.2】 朋友关系

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

/*
3382:【例66.2】 朋友关系(编程启蒙)
http://bas.ssoier.cn:8086/problem_show.php?pid=3382
https://blog.csdn.net/qq_65448545/article/details/134750178
*/
#include<bits/stdc++.h>
using namespace std;
string ss,ss1,s[100000];
int n,m,k=0,a[1005][1005],b1,b2,maxn;
int f(string x) {
    for (int i = 1; i <= k; i++) {
        if (s[i] == x)return i;
    }
    k++;
    s[k] = x;
    return k;
}
int main() {
    cin >> n >> m;
    for (int i = 1; i <= m; i++) {
        cin >> ss >> ss1;
        b1 = f(ss);
        b2 = f(ss1);
        a[b1][b2] = 1;
        a[b2][b1] = 1;
    }
    for (int i = 1; i <= n; i++) {
        int sum = 0;
        for (int j = 1; j <= n; j++) {
            if (a[i][j] == 1)sum++;
        }
        if (sum > maxn)maxn = sum;
    }
    cout << maxn;
}



3、3383:练66.1  黑马篮球队

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

/*
3383:练66.1  黑马篮球队
http://bas.ssoier.cn:8086/problem_show.php?pid=3383
*/
#include <bits/stdc++.h>
using namespace std;
int v[10000],n,m,ans=120000,x,y;
bool vis[4005][4005],f;
pair<int,int> a[4005];
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>x>>y;
		vis[x][y]=1;
		vis[y][x]=1;
		a[i].first=x;
		a[i].second=y;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if( vis[i][j])
			{
				v[i]++;
			}
		}
	}
	
	for(int i=1;i<=m;i++)
	{
		x=a[i].first;
		y=a[i].second;
		for(int j=1;j<=n;j++)
		{
			if( vis[x][j] && vis[y][j])
			{
				f=1;
				ans=min(ans,v[x]+v[y]+v[j]);
			}
		}
	}
	if( !f )
	{
		cout<<-1;
	}
	else
	{
		cout<<ans;
	}
	return 0;
}



4、3384:【例67.1】 爬楼梯

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

[例67.1] 爬楼梯

1204:爬楼梯

信息学奥赛一本通(C++版)在线评测系统

爬楼梯(信息学奥赛一本通-T1204)

爬楼梯(信息学奥赛一本通-T1204)_哔哩哔哩_bilibili

《信息学奥赛一本通》递归算法:1204爬楼梯

《信息学奥赛一本通》递归算法:1204爬楼梯_哔哩哔哩_bilibili

/*
2023-03-18青少年软件编程(C语言)等级考试试卷(三级) T3 4017:爬楼梯 AC
http://bailian.openjudge.cn/practice/4017/

4017:爬楼梯
https://blog.csdn.net/weixin_53360179/article/details/110879990
*/
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdlib> 
using namespace std;
int stair(int n)
{
	if(n == 1)	return 1;
	if(n == 2)	return 2;
	//if(n == 3) 	return 3;//临界条件,可以取多个值,只要满足连续的(n-1)-(n-2)+1个就行 
	return stair(n-1)+stair(n-2); //递推式 
}


int main()
{
	int n;
	while(cin>>n)
	{
		int ans = stair(n);
		cout<<ans<<endl;
	}
	return 0;
}


scratch3代码:






5、3385:【例67.2】 昆虫繁殖

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

[例67.2] 昆虫繁殖

1312:【例3.4】昆虫繁殖

信息学奥赛一本通(C++版)在线评测系统

#include<iostream>
using namespace std;
int main()
{
    long long a[101]={0},b[101]={0},i,j,x,y,z;
    
    //每对成虫过x个月产y对卵
    //问过Z个月以后,共有成虫多少对?0=<X<=20,1<=Y<=20,X=<Z<=50
	cin>>x>>y>>z;
    
	//初始化 
	for(i=1;i<=x;i++)
	{
		//a[i]指的第i个月份成虫的数量 
		a[i]=1;
		
		//b[i]第i个月成熟的数量 
		b[i]=0;
	}
    
    //因为要统计到第z个月后,所以要for到z+1
    //每对卵要过两个月长成成虫
    //且卵长成成虫后的第一个月不产卵(过X个月产卵),
    //过X个月产卵那么第一个月肯定不产卵
	for(i=x+1;i<=z+1;i++)     
    {
        每对成虫过x个月产y对卵
        //b[i]第i个月成熟的数量 
        //a[i-x]当时能产卵的成虫的数量 
		b[i]=y*a[i-x];
        
		a[i]=a[i-1]+b[i-2]; //a[i]指的第i个月份成虫的数量
		//cout<<"b["<<i<<"]="<<b[i]<<" a["<<i<<"]="<<a[i]<<endl;
		//cout<<"a["<<i<<"]="<<a[i]<<"="<<a[i-1]<<"+"<<b[i-2]<<endl; 
		//cout<<"---------------------------"<<endl;               
    }  
    cout<<a[z+1]<<endl;
    return 0;
}



6、3386:【例67.3】 数字金字塔

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

[例67.3] 数字金字塔

1258:【例9.2】数字金字塔

信息学奥赛一本通(C++版)在线评测系统

动态规划-1(入门:数字金字塔)

动态规划-1(入门:数字金字塔)_哔哩哔哩_bilibili

奥赛一本通 动态规划专题 1258 数字金字塔

奥赛一本通 动态规划专题 1258 数字金字塔_哔哩哔哩_bilibili

数字金字塔(信息学奥赛一本通-T1258)

数字金字塔(信息学奥赛一本通-T1258)_哔哩哔哩_bilibili

信奥一本通_1258【例9.2】数字金字塔

信奥一本通_1258【例9.2】数字金字塔_哔哩哔哩_bilibili

/*
1258:【例9.2】数字金字塔_方法二:记忆化搜索
http://ybt.ssoier.cn:8088/problem_show.php?pid=1258
*/
#include <iostream>
#include <algorithm>
using namespace std;

const int MAXN = 1505;
int A[MAXN][MAXN],F[MAXN][MAXN],N;
//F[x][y]记录从(x,y)出发到终点路径的最大权值和 
int Dfs(int x,int y)
{
 	if ( F[x][y]==-1 )
	{
	    if ( x == N )	
		{
			F[x][y]=A[x][y];
			//cout<<"x0="<<x<<" y="<<y<<" "<<F[x][y]<<endl;
		}
		else        
		{
			F[x][y]=A[x][y]+max(Dfs(x+1,y),Dfs(x+1,y+1));
			//cout<<"x1="<<x<<" y="<<y<<" "<<F[x][y]<<endl;
		}
		//cout<<"------------------------------"<<endl;	
	}
	//已经算过了,做了记忆化 
	return F[x][y];
}

int main( void )
{
	//freopen("a.in","r",stdin);
	//freopen("b.out","w",stdout);
	
	cin >> N;
	for(int i = 1;i <= N;i ++)
	for(int j = 1;j <= i;j ++)
	  	cin >> A[i][j];
	
	for(int i = 1;i <= N;i ++) 		
	for(int j = 1;j <= i;j ++)  			
		F[i][j] = -1;  	
	
	Dfs(1,1);
	
	//cout<<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl;
	cout << F[1][1] << endl;
	
	//fclose(stdin);
    //fclose(stdout);
    
	return 0;
}        
/*
由于F[x][y]对于每个合法的(x,y)都只计算过一次,
而且计算是在O(1)内完成的,因此时间复杂度为O(N^2)。
可以通过本题。
*/



7、3387:练67.1  斐波那契数列

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

练67.1 斐波那契数列

1159:斐波那契数列

信息学奥赛一本通(C++版)在线评测系统

原来递归就是内卷?1158 求1+2+3+... 1159 斐波那契数列 递归介绍 奥赛一本通

原来递归就是内卷?1158求1+2+3+... 1159 斐波那契数列 递归介绍 奥赛一本通_哔哩哔哩_bilibili

斐波那契数列(信息学奥赛一本通-T1159)

斐波那契数列(信息学奥赛一本通-T1159)_哔哩哔哩_bilibili

《信息学奥赛一本通》题解_1159_斐波那契数列_哔哩哔哩_bilibili

1808:斐波那契数列

信息学奥赛一本通(C++版)在线评测系统

/*
3387:练67.1  斐波那契数列
http://bas.ssoier.cn:8086/problem_show.php?pid=3387
*/
#include <bits/stdc++.h>
using namespace std;
int n;
int a[1000000+10],b[1000000+10];
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	b[1]=1;
	for(int i=2;i<=1000000;i++)
	{
		b[i]=(b[i-1]+b[i-2])%1000;
	}
	for(int i=1;i<=n;i++)
	{
		cout<<b[a[i]]<<endl;
	}
}



8、3388:练67.2  金猪大家庭

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

#include<iostream>
#include<cstdio>
using namespace std;
long long s,a[50];
int main()
{
	int n,i;
	cin>>n;
	if(n==1) cout<<1<<endl;//第一年一头母猪输出1 
	else
	{
		n+=5;//从第7年算,这样可以容易表示死猪的数量 
		s=0;//s指存活时间大于等于3且小于6的母猪 
		a[6]=1;//新出生母猪的数量 
		for(i=7;i<=n;i++)
		{
			s+=a[i-2]-a[i-6];//两年前的母猪数量减去六年前的母猪数量得出可以生4只母猪和4只公猪的数量 
			a[i]=a[i-1]*2+s*4;//第i年母猪的数量等于前年的母猪数量乘2加上可以生4只母猪和4只公猪的数量的4倍 
		}
		//cout<<s<<" "<<a[n-1]<<" "<<a[n]<<endl; 
		cout<<s+a[n-1]+2*a[n]<<endl;//a[n-1]代表能在n-1年生2只母猪和2只公猪的数量,2*a[n]代表第n年的母猪的数量加公猪的数量 
	}
	return 0;
}



9、3389:练67.3  背单词

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

练67.3 背单词

1477:【SCOI2016】背单词

信息学奥赛一本通(C++版)在线评测系统

/*
3389:练67.3  背单词
http://bas.ssoier.cn:8086/problem_show.php?pid=3389
*/
#include <bits/stdc++.h>
using namespace std;
int main()
{
	long long n,a[100+5];
	a[1]=1;
	a[2]=2;
	a[3]=3;
	cin>>n;
	for(int i=4;i<=n;i++)
	{
		a[i]=a[i-1]+a[i-3];
	}
	cout<<a[n]<<endl;
	return 0;
}



10、3390:【例68.1】自动应答器

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

3390【例68.1】自动应答器_哔哩哔哩_bilibili

/*
3390:【例68.1】自动应答器
http://bas.ssoier.cn:8086/problem_show.php?pid=3390
*/
#include <bits/stdc++.h>
using namespace std;
char c[100];
int main()
{
	scanf("%s",c);
	printf("Hi, %s. What's the matter?",c);
}








 信息学科普

渣渣炜渣渣的个人空间-渣渣炜渣渣个人主页-哔哩哔哩视频

【信息学科普】信息学不同阶段理想的师生关系

【信息学科普】信息学不同阶段理想的师生关系_哔哩哔哩_bilibili

【信息学规划】一年级学图形化如何走向信奥

【信息学规划】一年级学图形化如何走向信奥_哔哩哔哩_bilibili

【信息学科普】信息学奥赛语法入门阶段知识体系

【信息学科普】信息学奥赛语法入门阶段知识体系_哔哩哔哩_bilibili

【信息学科普】信息学奥赛CSP-J阶段知识体系

【信息学科普】信息学奥赛CSP-J阶段知识体系_哔哩哔哩_bilibili

【信息学科普】信奥知识体系以及课程安排

【信息学科普】信奥知识体系以及课程安排_哔哩哔哩_bilibili

【信息学科普】信息学赛事参加顺序

【信息学科普】信息学赛事参加顺序_哔哩哔哩_bilibili

【信息学科普】CSP认证的由来

【信息学科普】CSP认证的由来_哔哩哔哩_bilibili

【信息学科普】绝对理想的零基础学生规划

【信息学科普】绝对理想的零基础学生规划_哔哩哔哩_bilibili

【信息学科普】信息学教材推荐

【信息学科普】信息学教材推荐_哔哩哔哩_bilibili




小学生讲C++(2023.12.03)

小学生讲C++(2023.12.03)-CSDN博客

从近三年CSP获奖情况看小学组信奥趋势!

从近三年CSP获奖情况看小学组信奥趋势!

【收藏】2024强基计划与综合评价特招政策

【收藏】2024强基计划与综合评价特招政策

第32集 | 1到4年级适合学的是C++语言,其他的语言都是知识孩子的玩具而已。

https://www.douyin.com/video/7303403310050987303

小学生适合学C++吗?别被培训机构忽悠了

https://www.douyin.com/video/7301268733618703631

三四年级的孩子学习信奥赛早不早?

三四年级的孩子学习信奥赛早不早?_哔哩哔哩_bilibili

宝宝的C++、小学生C++启蒙、小学生C++入门

宝宝的C++、小学生C++启蒙、小学生C++入门-CSDN博客

小学生适宜几年级开始学C++

小学生适宜几年级开始学C++-CSDN博客

编程启蒙系列书籍(2023.11.24)

编程启蒙系列书籍(2023.11.24)-CSDN博客

小学生讲C++(2023.12.03)

小学生讲C++(2023.12.03)-CSDN博客

计算机有哪些值得参加的比赛、信息学奥赛相关的比赛和考试

计算机有哪些值得参加的比赛、信息学奥赛相关的比赛和考试-CSDN博客

NOIP2023 游记、总结、真题解析

NOIP2023 游记、总结、真题解析-CSDN博客




scratch考试“画图”相关考点一网打尽

scratch考试“画图”相关考点一网打尽_六花阵图编程-CSDN博客

Scratch编程入门-画图模块4【绘制正方形】

https://download.csdn.net/blog/column/11969763/126493399

Go C 编程 第12课 幸运大转盘(魔法学院的奇幻之旅 Go C编程绘图)--3题

Go C 编程 第12课 幸运大转盘(魔法学院的奇幻之旅 Go C编程绘图)--3题_goc编程挑战赛 会动的钟表-CSDN博客

  • 22
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dllglvzhenfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值