CodeForces ~ 991D ~ Bishwock(贪心 + 模拟)

题意

2*n的地图,‘X’为墙,‘0’为空地,问最多能放多少个‘L’? ‘L’可以旋转。


思路

如果当前列为两个0,优先往左边放,然后往右边放。注意往左放完之后就不能往右边放了。

#include <bits/stdc++.h>
using namespace std;
string a[2];
int main()
{
    cin >> a[0] >> a[1];
    int len = a[0].size(), cnt = 0;
    for (int i = 0; i < len; i++)
    {
        if (a[0][i] == 'X' || a[1][i] == 'X') continue;
        a[0][i] = a[1][i] = 'X';
        bool flag = false;
        if (i-1 >= 0)//优先往左边放
        {
            if (a[0][i-1] == '0') a[0][i-1] = 'X', flag = true;
            else if (a[1][i-1] == '0') a[1][i-1] = 'X', flag = true;
        }
        if (i+1 < len && !flag)//左边没放,往右边放
        {
            if (a[0][i+1] == '0') a[0][i+1] = 'X', flag = true;
            else if (a[1][i+1] == '0') a[1][i+1] = 'X', flag = true;
        }
        if (flag) cnt++;
    }
    printf("%d\n", cnt);
    return 0;
}
/*
00X00X0XXX0
0XXX0X00X00
00000
00000
*/
仅从给定引用中可知该引用包含Codeforces Round 991 (Div. 3) 的个人题解以及一道题的AC代码,代码的时间复杂度为O(N),但未提及比赛题目、结果、详细分析等信息。 通常可以通过以下途径获取Codeforces Round 991 (Div. 3) 的相关信息: - **Codeforces官网**:这是最权威的信息来源。在官网的比赛页面可以找到该场比赛的具体题目,题目一般会有英文描述、输入输出要求等。比赛结束后,官网会公布比赛结果,包括参赛选手的排名、得分等。同时,也能在赛后看到其他选手提交的代码以及系统评测的结果。官网还可能会有官方的题解分析,帮助理解题目的解题思路和方法。 - **Codeforces相关的社区论坛**:如Codeforces的官方论坛、一些技术交流论坛等。在这些地方,选手们会分享自己对比赛题目的理解、解题思路、遇到的问题以及解决方案等。还能看到不同选手对比赛难度的评价和分析。 - **代码仓库和博客**:部分选手会将自己在比赛中的代码上传到代码仓库(如GitHub),并在博客中分享自己的解题过程和经验。通过搜索相关关键词,可以找到这些资源,从中获取比赛题目的详细分析和代码实现。 以下是给定引用中的AC代码,用Markdown代码块展示: ```cpp #include <bits/stdc++.h> // #define DEBUG using i64 = long long; using u64 = unsigned long long; using u32 = unsigned; using u128 = unsigned __int128; constexpr int inf32 = 1E9 + 7; constexpr i64 inf64 = 1E18 + 7; void solve() { int n, m; std::cin >> n >> m; std::vector<std::string> words(n); for (int i = 0; i < n; ++ i) { std::cin >> words[i]; } int ans = 0, sum = 0; while (ans < n && sum + words[ans].size() <= m) { sum += words[ans ++].size(); } std::cout << ans << '\n'; } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); #ifdef DEBUG int START = clock(); freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); #endif int t = 1; std::cin >> t; while (t --) { solve(); } #ifdef DEBUG std::cerr << "run-time: " << clock() - START << '\n'; #endif return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值