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 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> AtCoder ABC 244(A ~ E F待补) -> 正文阅读

[C++知识库]AtCoder ABC 244(A ~ E F待补)

AtCoder ABC 244

A - Last Letter(语法)

Description:

? 输出给定字符串的最后一个字符

Resolution

? 过水

Code:

void solve()
{
	int n;
    string s;
    cin >> n;
    cin >> s;
    cout << s[n - 1];
}

B - Go Straight and Turn Right(模拟)

Description:

? 对于给定操作序列 S向前走一步 R顺时针转向 初始坐标是0 0 输出操作序列结束时的坐标

Resolution

? 写出方向偏移量 然后模拟 注意的是使转向环形进行

Code:

int dx[4][2] = {{1, 0}, {0, -1}, {-1, 0}, {0, 1}}; //0 1 2 3
char s[100010];
 
void solve()
{
	int n;
    cin >> n;
    cin >> s;
    int st = 0;
    PII res = {0, 0};
    for(int i = 0; i < n; i++)
    {
        if(s[i] == 'S')     res.first += dx[st][0], res.second += dx[st][1];
        else if(s[i] == 'R')  st = (st == 3) ? 0 : st + 1;
    }
    cout << res.first << " " << res.second;
}

C - Yamanote Line Game(交互 + 简单模拟)

Description:

? 首先 A会给你一个数n 然后B和A交替输出一个[1, 2 * n + 1]之间未被输出过的数

? 最后一个没有数输出的人 只能输出0

? 题目告诉你 B 一定获胜 所以请你模拟B的输出 来完成这个game (A是一个编写好的程序 他会随机应变)

? 切记 当最后A输出0之后要记得return 0 不然会TLE

Resolution

? 读题卡了好久 应该抓住重点确定 比如循环次数的次数

? 因为2 * n + 1是奇数 又因为B先输出 所以B一定能获胜

? 策略:B每次直接找[1, 2 * n + 1]中没有被输出的数输出即可

Code:

bool st[1010];
 
void solve()
{
	int n, x;
    cin >> n;
    cout << 1 << '\n';
    st[1] = 1;
    
    for(int i = 1; i <= n + 1; i++)
    {
        cin >> x;
        if(x == 0)  return;
 
        st[x] = 1;
        for(int i = 1; i <= 2 * n + 1; i++)
        {
            if(st[i] == false)
            {
                st[i] = 1;
                cout << i << '\n';
                break;
            }
        }
    }
}

D - Swap Hats(思维)

Description:

? 给定3个字母R G B组成的序列为标准排列

? 再给定3个字母R G B组成的序列为当前排列

? 请问是否能够经过1e18的交换次数使当前排列恢复成标准排列 交换可以任意位置互换

Resolution

? 简化问题为 经过偶数次排序能还原的都没问题 经过奇数次还原的不行

? 想到这里就很容易实现了

Code:

void solve()
{
    char c;
	for(int i = 0; i < 3; i++)
    {
        cin >> c;
        mp[c] = i;
    }
 
    int res = 0;
    for(int i = 0; i < 3; i++)
    {
        cin >> c;
        if(i != mp[c])     res ++;
    }
    if(res == 2)    puts("No"); //奇数次交换
    else puts("Yes");
}

E - King Bombee(图论 + DP)

Description:

? 给出一张无向图 请问起点为编号s 终点为编号t 且长度为len 含有奇数个数个X的路径有多少个

Resolution

? 可以想到计数DP的思路 然后用记忆化搜索 根据题意爆搜就可以过了

Code:

const int mod = 998244353;
int n, m, k, s, t, x;
vector<int> edge[2010];
int dp[2010][2010][2]; //长度 当前节点 X出现次数奇偶
 
int dfs(int step, int u, int is_even) //长度 当前节点 是奇数1 偶数0
{
    if(step == k)   return u == t && is_even; //满足条件就返回1
    if(dp[step][u][is_even] != -1)   return dp[step][u][is_even]; //记忆化搜索
    int res = 0;
    
    for(auto v : edge[u])
        res = (res + dfs(step + 1, v, is_even ^ (v == x))) % mod; //0 变 1 1 变 0 
        
    dp[step][u][is_even] = res;
    return res;
}
 
void solve()
{
    cin >> n >> m >> k >> s >> t >> x;
    for(int i = 1; i <= m; i++)
    {
        int u, v;
        cin >> u >> v; //无向图
        edge[u].push_back(v);
        edge[v].push_back(u);
    }
 
    memset(dp, -1, sizeof dp);
    cout << dfs(0, s, 1) << '\n';
}

F - Shortest Good Path

Description:

Resolution

Code:

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:18:35  更:2022-03-24 00:19:56 
 
开发: 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/24 2:13:22-

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