1、3381:【例66.1】 图论入门
信息学奥赛一本通-编程启蒙3381:【例66.1】 图论入门
/*
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】 朋友关系
/*
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 黑马篮球队
/*
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】 爬楼梯
[例67.1] 爬楼梯
1204:爬楼梯
爬楼梯(信息学奥赛一本通-T1204)
《信息学奥赛一本通》递归算法:1204爬楼梯
/*
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】 昆虫繁殖
[例67.2] 昆虫繁殖
1312:【例3.4】昆虫繁殖
#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】 数字金字塔
[例67.3] 数字金字塔
1258:【例9.2】数字金字塔
动态规划-1(入门:数字金字塔)
奥赛一本通 动态规划专题 1258 数字金字塔
数字金字塔(信息学奥赛一本通-T1258)
信奥一本通_1258【例9.2】数字金字塔
/*
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 斐波那契数列
练67.1 斐波那契数列
1159:斐波那契数列
原来递归就是内卷?1158 求1+2+3+... 1159 斐波那契数列 递归介绍 奥赛一本通
原来递归就是内卷?1158求1+2+3+... 1159 斐波那契数列 递归介绍 奥赛一本通_哔哩哔哩_bilibili
斐波那契数列(信息学奥赛一本通-T1159)
1808:斐波那契数列
/*
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 金猪大家庭
#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 背单词
练67.3 背单词
1477:【SCOI2016】背单词
/*
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】自动应答器
/*
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);
}
信息学科普
【信息学科普】信息学不同阶段理想的师生关系
【信息学规划】一年级学图形化如何走向信奥
【信息学科普】信息学奥赛语法入门阶段知识体系
【信息学科普】信息学奥赛CSP-J阶段知识体系
【信息学科普】信奥知识体系以及课程安排
【信息学科普】信息学赛事参加顺序
【信息学科普】CSP认证的由来
【信息学科普】绝对理想的零基础学生规划
【信息学科普】信息学教材推荐
小学生讲C++(2023.12.03)
从近三年CSP获奖情况看小学组信奥趋势!
【收藏】2024强基计划与综合评价特招政策
第32集 | 1到4年级适合学的是C++语言,其他的语言都是知识孩子的玩具而已。
小学生适合学C++吗?别被培训机构忽悠了
三四年级的孩子学习信奥赛早不早?
宝宝的C++、小学生C++启蒙、小学生C++入门
小学生适宜几年级开始学C++
编程启蒙系列书籍(2023.11.24)
小学生讲C++(2023.12.03)
计算机有哪些值得参加的比赛、信息学奥赛相关的比赛和考试
NOIP2023 游记、总结、真题解析
scratch考试“画图”相关考点一网打尽
Scratch编程入门-画图模块4【绘制正方形】
Go C 编程 第12课 幸运大转盘(魔法学院的奇幻之旅 Go C编程绘图)--3题
Go C 编程 第12课 幸运大转盘(魔法学院的奇幻之旅 Go C编程绘图)--3题_goc编程挑战赛 会动的钟表-CSDN博客