每日两题day59

今天你AC了吗?

每日两题day59


一、基础题

题目:P1421 小玉买文具 - 洛谷

思路:

涉及多种进制的题目都可以全部拆成最小的单位再处理。

代码:

cpp 复制代码
#include <bits/stdc++.h>
int main() {
    int a, b, sum = 0;
    std::cin >> a >> b;
    sum = a * 10 + b;
    std::cout << (sum / 19);
    return 0;
}

二、提高题

题目:P2615 [NOIP 2015 提高组] 神奇的幻方 - 洛谷

思路:

纯模拟,按题目来的写判别函数就好了

代码:

cpp 复制代码
#include <bits/stdc++.h>

int n = 40, i = 1;
std::vector<std::vector<int>> a(n, std::vector<int>(n));

std::pair<int, int> next(std::pair<int, int> b) {
    if (b.first == 0 && b.second != n - 1) {
        return {n - 1, b.second + 1};
    }
    if (b.second == n - 1 && b.first != 0) {
        return {b.first - 1, 0};
    }
    if (b.first == 0 && b.second == n - 1) {
        return {1, n - 1};
    }
    if (b.first - 1 >= 0 && b.second + 1 < n && a[b.first - 1][b.second + 1] == 0) {
        return {b.first - 1, b.second + 1};
    } else {
        return {b.first + 1, b.second};
    }
}

int main() {
    std::pair<int, int> before;
    std::cin >> n;

    a[0][n / 2] = 1;
    before = {0, n / 2};
    while (++i <= n * n) {
        before = next(before);
        a[before.first][before.second] = i;
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            std::cout << a[i][j] << " ";
        }
        std::cout << "\n";
    }
    return 0;
}
相关推荐
君义_noip11 分钟前
信息学奥赛一本通 1615:【例 1】序列的第 k 个数
c++·算法·信息学奥赛·csp-s
ホロHoro11 分钟前
数据结构非线性部分(1)
java·数据结构·算法
Blossom.11814 分钟前
大模型推理优化实战:连续批处理与PagedAttention性能提升300%
大数据·人工智能·python·神经网络·算法·机器学习·php
AA陈超18 分钟前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-19.发送鼠标光标数据
c++·笔记·学习·游戏·ue5·虚幻引擎
沉下去,苦磨练!23 分钟前
实现二维数组反转
java·数据结构·算法
bybitq30 分钟前
Leetcode-3780-Python
python·算法·leetcode
如何原谅奋力过但无声31 分钟前
【力扣-Python-75】颜色分类(middle)
python·算法·leetcode
玖剹33 分钟前
哈希表相关题目
数据结构·c++·算法·leetcode·哈希算法·散列表
红豆诗人37 分钟前
数据结构初阶知识--单链表
c语言·数据结构
laocooon5238578861 小时前
相对名次算法的处理python
开发语言·python·算法