IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> AtCoder Beginner Contest 250 -> 正文阅读

[数据结构与算法]AtCoder Beginner Contest 250

A - Good morning

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

#define rep(i, a, n) for (int i = a; i < n; i++)
#define per(i, n, a) for (int i = n - 1; i >= a; i--)
#define sz(x) (int)size(x)
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define pb push_back
#define mk make_mair
typedef long long ll;
typedef pair<int, int> PII;
const int mod = 1e9+7;
const int N = 110, M = 300010;
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};

int main()
{
    int n, m, r, c;
    cin >> n >> m >> r >> c;
    int ans = 4;
    if (r == 1) ans -- ;
    if (r == n) ans -- ;
    if (c == 1) ans -- ;
    if (c == m) ans -- ;
    cout << ans << endl;
    return 0;
}

B - Enlarged Checker Board

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

#define rep(i, a, n) for (int i = a; i < n; i++)
#define per(i, n, a) for (int i = n - 1; i >= a; i--)
#define sz(x) (int)size(x)
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define pb push_back
#define mk make_mair
typedef long long ll;
typedef pair<int, int> PII;
const int mod = 1e9+7;
const int N = 110, M = 300010;
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};

int main()
{
    int n, a, b;
    cin >> n >> a >> b;
    
    string s;
    bool flag = true;
    for (int k = 1; k <= n; k ++ )
    {
        for (int u = 1; u <= n; u ++ )
        {
            for (int j = 1; j <= b; j ++ )
            {
                if (flag)
                    s += '.';
                else
                    s += '#';
            }
            flag = !flag;
        }
        
        for (int i = 1; i <= a; i ++ )
        {
            printf("%s\n", s.c_str());
        }
        if (s[0] != s[sz(s) - 1])
            flag = !flag;
        s = "";
    }
    return 0;
}

C - Adjacent Swaps

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

#define rep(i, a, n) for (int i = a; i < n; i++)
#define per(i, n, a) for (int i = n - 1; i >= a; i--)
#define sz(x) (int)size(x)
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define pb push_back
#define mk make_mair
typedef long long ll;
typedef pair<int, int> PII;
const int mod = 1e9+7;
const int N = 200010, M = 300010;
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};

int n, m;
int a[N];
unordered_map<int, int> mp;

int main()
{
    cin >> n >> m;
    rep(i, 1, n + 1) mp[i] = i, a[i] = i;
    
    while (m -- )
    {
        int x;
        scanf("%d", &x);
        
        int p = mp[x];
        if (p < n)
        {
            int l = a[p], r = a[p + 1];
            int t = mp[l];
            mp[l] = mp[r];
            mp[r] = t;
            swap(a[p], a[p + 1]);
        }
        else
        {
            int l = a[p], r = a[p - 1];
            int t = mp[l];
            mp[l] = mp[r];
            mp[r] = t;
            swap(a[p], a[p - 1]);
        }
    }
    rep(i, 1, n + 1)
        printf("%d ", a[i]);
    puts("");
    return 0;
}

D - 250-like Number

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

#define rep(i, a, n) for (int i = a; i < n; i++)
#define per(i, n, a) for (int i = n - 1; i >= a; i--)
#define sz(x) (int)size(x)
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define pb push_back
#define mk make_mair
typedef long long ll;
typedef pair<int, int> PII;
const int mod = 1e9+7;
const int N = 1000010, M = 300010;
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};

ll m;
int primes[N], cnt;
bool st[N];

void get_primes(int n)  // 线性筛质数
{
    for (int i = 2; i <= n; i ++ )
    {
        if (!st[i]) primes[cnt ++ ] = i;
        for (int j = 0; primes[j] <= n / i; j ++ )
        {
            st[primes[j] * i] = true;
            if (i % primes[j] == 0) break;
        }
    }
}

int main()
{
    cin >> m;
    get_primes(N);
    
    ll res = 0;
    
    rep (i, 0, cnt - 1)
    {
        int l = i + 1, r = cnt - 1;
        while (l < r)
        {
            int mid = l + r  + 1 >> 1;
            if (pow(primes[mid], 3) <= m / primes[i]) l = mid;
            else r = mid - 1;
        }
        if (pow(primes[l], 3) > m / primes[i]) break;
        res += (l - i);
    }
    cout << res << endl;
    return 0;
}

E - Prefix Equality

这道题告诉我们边界很重要。
主要是初始化的时候按照题目要求来叭,保证初始化答案跟正确的答案不能有交集。
做法就是两个集合比较大小是否相等就可以了,提前预处理好对应a每一个数在b中的区间范围。

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

#define rep(i, a, n) for (int i = a; i < n; i++)
#define per(i, n, a) for (int i = n - 1; i >= a; i--)
#define sz(x) (int)size(x)
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define pb push_back
#define mk make_mair
typedef long long ll;
typedef pair<int, int> PII;
const int mod = 1e9+7;
const int N = 200010, M = 300010;
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};

int n, m;
int a[N], b[N];
set<int> sa, sb;
PII q[N];

void init()
{
    int k = 1;
    rep(i, 1, n + 1)
    {
        if (!sa.count(a[i]))
        {
            sa.insert(a[i]);
            if (!sa.count(b[k])) continue;
            int l = -1;
            while (k <= n && sa.count(b[k])) 
            {   
                sb.insert(b[k]);
                if (l == -1 && sb.size() == sa.size()) l = k;
                k ++ ;
            }
            if (l != -1)
                q[i] = {l, k - 1};
        }
        else
        {
            q[i] = q[i - 1];
        }
    }
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n;
    rep(i, 1, n + 1) cin>>a[i];
    rep(i, 1, n + 1) cin>>b[i];
    cin >> m;
    init();
    while (m -- )
    {
        int x, y;
        cin>>x>>y;
        if (y >= q[x].fi && y <= q[x].se)
            puts("Yes");
        else
            puts("No");
    }
    return 0;
}

因为接下来后面都不是蓝桥杯B组的考点,所以就不做了哈哈哈哈,1个小时下班

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 12:08:32  更:2022-05-10 12:11:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:48:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码