当前位置: 首页 > article >正文

NO.24十六届蓝桥杯备战|二维数组八道练习|杨辉三角|矩阵(C++)

P5732 【深基5.习7】杨辉三角 - 洛谷

![[Pasted image 20250305184653.png]]

#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    cin >> n;
    vector<vector<int>> a(n, vector<int> (n));
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j <= i; j++)
        {
            if (j == 0)
            {
                a[i][j] = 1;
            }
            if (j == i)
            {
                a[i][j] = 1;
            }
            if (i >= 2 && j >= 1)
                a[i][j] = a[i-1][j-1] + a[i-1][j];
        }
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j <= i; j++)
        {
            cout << a[i][j] << ' ';
        }
        cout << '\n';
    }
    
    return 0;
}

合并成一次遍历

#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    cin >> n;
    vector<vector<int>> a(n, vector<int> (n));
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j <= i; j++)
        {
            if (j == 0)
            {
                a[i][j] = 1;
            }
            if (j == i)
            {
                a[i][j] = 1;
            }
            if (i >= 2 && j >= 1)
                a[i][j] = a[i-1][j-1] + a[i-1][j];
            cout << a[i][j] << ' ';
        }
        cout << '\n';
    }

    return 0;
}
B2099 矩阵交换行 - 洛谷
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    vector<vector<int>> a(5, vector<int>(5));
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            cin >> a[i][j];
        }
    }
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < 5; i++)
    {
        int tmp = a[n-1][i];
        a[n-1][i] = a[m-1][i];
        a[m-1][i] = tmp;
    }
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            cout << a[i][j] << ' ';
        }
        cout << endl;
    }
    
    return 0;
}
B2103 图像相似度 - 洛谷

![[Pasted image 20250305184713.png]]

#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int m, n;
    cin >> m >> n;
    vector<vector<int>> a(m, vector<int>(n));
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];        
        }
    }
    vector<vector<int>> b(m, vector<int>(n));
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> b[i][j];        
        }
    }
    int cnt = 0;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if(a[i][j] == b[i][j])
                cnt++;
        }
    }
    printf("%.2f", cnt * 100.0 / m / n);
    
    return 0;
}
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int m, n;
    cin >> m >> n;
    vector<vector<int>> a(m, vector<int>(n));
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];        
        }
    }
	int t = 0;
	int cnt = 0;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> t;
            if (t == a[i][j])
	            cnt++;
        }
    }
    
    printf("%.2f", cnt * 100.0 / m / n);
    
    return 0;
}
B2104 矩阵加法 - 洛谷
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int m, n;
    cin >> m >> n;
    vector<vector<int>> a(m, vector<int>(n));
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];        
        }
    }
    vector<vector<int>> b(m, vector<int>(n));
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> b[i][j];        
        }
    }
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            a[i][j] += b[i][j];
            cout << a[i][j] << ' ';
        }
        cout << endl;
    }

    return 0;
}
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int m, n;
    cin >> m >> n;
    vector<vector<int>> a(m, vector<int>(n));
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];        
        }
    }
    int t = 0;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> t;
            cout << a[i][j] + t << ' ';        
        }
        cout << endl;
    }

    return 0;
}
B2106 矩阵转置 - 洛谷
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int m, n;
    cin >> m >> n;
    vector<vector<int>> a(m, vector<int>(n));
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];        
        }
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m ; j++)
        {
            cout << a[j][i] << ' ';
        }
        cout << endl;
    }

    return 0;
}
B2101 计算矩阵边缘元素之和 - 洛谷

![[Pasted image 20250305184742.png]]

#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int m, n;
    cin >> m >> n;
    vector<vector<int>> a(m, vector<int> (n));
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];        
        }
    }
    int sum = 0;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i == 0 || i == m-1)
                sum += a[i][j];
            else if (j == 0 || j == n - 1)
                sum += a[i][j];
        }
    }
    cout << sum << endl;
    
    return 0;
}
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int m, n;
    cin >> m >> n;
    vector<vector<int>> a(m, vector<int> (n));
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];        
        }
    }
    int sum = 0;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i == 0 || i == m-1 || j == 0 || j == n - 1)
                sum += a[i][j];
        }
    }
    cout << sum << endl;
    
    return 0;
}
#include <iostream>  
using namespace std;  

int main()  
{  
	int m, n;  
	cin >> m >> n;  
	int sum = 0;  
	int i = 0;  
	int j = 0;  
	int x = 0;  
	for (i = 0; i < m; i++)  
	{  
		for (j = 0; j < n; j++)
		{  
			cin >> x;  
			if (i == 0 || i == m - 1 || j == 0 || j == n - 1)  
				sum += x;  
		}  
	}  
	cout << sum << endl;  
	
	return 0;  
}

代码在遍历数组的过程中判断属于边缘的元素,仅对数组中的每个元素遍历了⼀遍,是不会存在重复统计的问题的。

B2108 图像模糊处理 - 洛谷

![[Pasted image 20250305185655.png]]

#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int m, n;
    cin >> m >> n;
    vector<vector<int>> a(m, vector<int> (n));
    vector<vector<int>> b(m, vector<int> (n));
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];
            b[i][j] = a[i][j];
        }
    }
    for (int i = 1; i < m - 1; i++)
    {
        for (int j = 1; j < n - 1; j++)
        {
            b[i][j] = (a[i-1][j] + a[i][j-1] + a[i+1][j] + a[i][j+1] + a[i][j]) / 5.0 + 0.5;
        }
    }
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << b[i][j] << " ";
        }
        cout << endl;
    }
    
    return 0;
}

对于浮点数,舍⼊到最接近的整数是什么意思呢?
⽐如:
4.3舍⼊成4
4.65舍⼊成5
这种情况可以使⽤+0.5后强制类型转换成int类型的值处理。
float f = 4.65;
int n = (int)(f+0.5);

P2550 [AHOI2001] 彩票摇奖 - 洛谷
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    cin >> n;
    vector<int> v(7);
    for (auto &x : v)
    {
        cin >> x;        
    }
    vector<vector<int>> a(n, vector<int> (7));
    vector<int> r(7);
    for (int i = 0; i < n; i++)
    {
        int cnt = 0;
        for (int j = 0; j < 7; j++)
        {
            cin >> a[i][j];
            for (int k = 0; k < 7; k++)
                if (a[i][j] == v[k])
                    cnt++;
        }
		r[7-cnt]++;
    }
    for (auto x : r)
    {
        cout << x << ' ';        
    }
    cout << endl;

    return 0;
}

http://www.kler.cn/a/573113.html

相关文章:

  • 力扣-字符串
  • 设计模式|策略模式 Strategy Pattern 详解
  • EIF加载---虚拟物理地址加载
  • Gartner:数据安全平台DSP提升数据流转及使用安全
  • 【损失函数_模型结构与前向传播的数学建模】
  • 加油站小程序实战教程07城市管理
  • 【Proteus仿真】【51单片机】图书馆照明及环境控制系统
  • (50)[HGAME 2023 week2]before_main
  • 全网独家:zabbixV7版本容器服务器无法访问Postgres V17数据库的问题解决
  • UNIAPP前端配合thinkphp5后端通过高德API获取当前城市天气预报
  • 磐石云AXB小号平台——安全与隐私的守护者
  • C++第八节:继承
  • 低空监视-无人机专用ADS-B应答机
  • 从数据到决策,永洪科技助力良信电器“智”领未来
  • MWC 2025|美格智能发布基于高通®X85 5G调制解调器及射频的新一代5G-A通信模组SRM819W
  • Jadx Gui 的详细介绍、安装指南、使用方法及配置说明
  • 面向多任务的夜间雾度成像增强器,用于视觉驱动测量系统(Python实现)
  • LINUX网络基础 [一] - 初识网络,理解网络协议
  • 如何利用Python爬虫按图搜索1688商品(拍立淘):实战指南
  • 专项:STM32状态机结构简述