每日两题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;
}
相关推荐
sali-tec1 分钟前
C# 基于OpenCv的视觉工作流-章76-轮廓-段距
图像处理·人工智能·opencv·算法·计算机视觉
水木流年追梦2 分钟前
大模型入门-RL基础
开发语言·python·算法·leetcode·正则表达式
TechPioneer_lp2 分钟前
就业指导|中九非科班毕业,华为 OD 做 Java 后端想转 C++,能找到深度学习挂钩的岗工作吗?
java·c++·华为od·华为·就业指导·校招指导
枕星而眠5 分钟前
C++ String类精讲:从基础用法到进阶底层原理
开发语言·c++·后端·学习方法
江屿风6 分钟前
【C++笔记】模板初阶流食般投喂
开发语言·c++·笔记
Shadow(⊙o⊙)6 分钟前
qt信号和槽链接的接入与断开
开发语言·前端·c++·qt·学习
肩上风骋10 分钟前
C++基本知识点积累之d指针,invokemethod函数(一)
开发语言·c++·d指针·invokemethod()
城事漫游Molly10 分钟前
AI 快速生成标准化问卷分析报告:从 SUS 到 UMUX-LITE,如何把“分数”写成“结论”
人工智能·算法·机器学习·论文笔记·科研统计·问卷设计
人道领域14 分钟前
【LeetCode刷题日记】617.合并二叉树(空间换安全,还是原地省内存)
java·数据结构·算法·leetcode
独自破碎E18 分钟前
机器人Java后端算法笔试题解析
java·windows·算法