Codeforces Round 946 (Div. 3) A~G

STM32学习笔记 二、基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发 系列文章目录 一、基于STM32F103C8T6最小系统板和STM32CubeMX实现LED灯循环闪烁 文章目录系列文章目录前言一、配置CubeMX二、逻辑代码部分 前言 这次我用的板子是一个用STM32F103C8T6作为主控芯片的一个数据采集卡,两个LED灯连接的引脚是PB3与PB4,TX与RX引脚分别是PA9和PA10。 一、配置CubeMX 1、新建工程; 2、配置时钟源,在RCC里面的HSE配置的是晶振时钟; 3、配置程序烧录引脚SYS为SWD模式; 4、配置GPIO口,配置一个LE 阅读详情

A.Phone Desktop (枚举)

题意:

小AAA的手机有一个桌面(或称启动器)。桌面可以由多个屏幕组成。每个屏幕表示为大小为 5×35 \times 35×3 的网格,即五行三列。

有 xxx 个应用程序的图标大小为 1×11 \times 11×1 个单元格;这样的图标只占屏幕的一个单元格。还有 yyy 个应用程序的图标大小为 2×22 \times 22×2 个单元。;这样的图标在屏幕上占据了 444 个单元格的个方格。每个屏幕的每个单元格最多只能有一个图标。

小AAA希望在最少的屏幕上放置应用程序图标。请帮她找出所需的最少屏幕数。

分析:

我们直接枚举需要放几个屏幕,再判断是否合法即可。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;

int main() {
    int t;
    cin >> t;
    while (t--) {
        LL x, y;
        cin >> x >> y;
        for (int i = 0; i <= 200; i++) {
            if (i * 2LL < y)
                continue;
            LL ans = 7LL * i + (2LL * i - y) * 4LL;
            if (ans >= x) {
                cout << i << endl;
                break;
            }
        }
    }
    return 0;
}

B.Symmetric Encoding (模拟)

题意:

给出一个由小写字母组成的字符串 sss 。使用以下算法对这个字符串进行编码:

  • 首先,构建一个新的辅助字符串 rrr ,该字符串由字符串 sss 中所有不同的字母组成,按字母顺序书写;
  • 然后进行如下编码:将字符串 sss 中的每个字符替换为字符串 rrr 中的对称字符(字符串 rrr 中的第一个字符将被最后一个字符替换,第二个字符将被从头开始的第二个字符替换,以此类推)。

例如, sss =codeforcescodeforcescodeforces字符串的编码过程如下:

  • 字符串 rrr 得到 cdeforscdeforscdefors;
  • 第一个字符 s1s_1s1​ =ccc 被替换为sss;
  • 第二个字符 s2s_2s2​ =ooo 被替换为eee;
  • 第三个字符 s3s_3s3​ =ddd 被替换为rrr;
  • …
  • 最后一个字符 s10s_{10}s10​ =sss 被替换为ccc。
    因此,对字符串 sss =codeforcescodeforcescodeforces 进行编码的结果是字符串 serofedsocserofedsocserofedsoc。
    编写一个程序来执行解码,即从编码结果中还原出原始字符串 sss 。

分析:

我们首先对字符串去重,再用mapmapmap存储映射关系,按照题意模拟即可。

代码:

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

int main() {
    int T;
    cin >> T;
    while (T--) {
        int n;
        cin >> n;
        string a;
        cin >> a;
        map<char, int> mp;
        vector<char> tmp;
        for (auto t: a) {
            if (!mp[t]) {
                mp[t] = 1, tmp.push_back(t);
            }
        }
        sort(tmp.begin(), tmp.end());
        for (int i = 0; i < tmp.size(); i++) mp[tmp[i]] = i;
        for (auto &t: a) cout << tmp[tmp.size() - mp[t] - 1];
        cout << endl;
    }
    return 0;
}

C. Beautiful Triple Pairs (数学)

题意:

给出由nnn个整数组成的数组aaa。每个 jjj ( 1≤j≤n−21 \le j \le n - 21≤j≤n−2 ) 都有一个由 [aj,aj+1,aj+2][a_j, a_{j + 1}, a_{j + 2}][aj​,aj+1​,aj+2​] 组成的三元组。

如果一对三元组 bbb 和 ccc 在一个位置上完全不同,即满足以下条件之一,那么它们就是美丽的:

  • b1≠c1b_1 \ne c_1b1​=c1​ 和 b2=c2b_2 = c_2b2​=c2​ 和 b3=c3b_3 = c_3b3​=c3​ ;
  • b1=c1b_1 = c_1b1​=c1​ 和 b2≠c2b_2 \ne c_2b2​=c2​ 和 b3=c3b_3 = c_3b3​=c3​ ;
  • b1=c1b_1 = c_1b1​=c1​ 和 b2=c2b_2 = c_2b2​=c2​ 和 b3≠c3b_3 \ne c_3b3​=c3​ 。

求写成的三元组 [aj,aj+1,aj+2][a_j, a_{j + 1}, a_{j + 2}][aj​,aj+1​,aj+2​] 中优美的三元组对数。

分析:

假设三元组为(x,y,z)(x,y,z)(x,y,z),当保证xxx不同时,y,zy,zy,z相同时,结果为[?,y,z][?, y, z][?,y,z]的数量减去 [x,y,z][x, y, z][x,y,z]的数量。另外两种情况类似,所以我们只要用计算出三种情况的数量再减去333倍的[x, y, z]$的数量即可。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;

int main() {
    int T;
    cin >> T;
    while (T--) {
        int n;
        cin >> n;
        vector<int> a(n + 1);
        for (int i = 1; i <= n; i++)
            cin >> a[i];
        map<array<int, 3>, LL> mp;
        map<array<int, 2>, LL> mp1, mp2, mp3;
        LL ans = 0;
        for (int i = 3; i <= n; i++) {
            ans += mp1[{a[i - 2], a[i - 1]}];
            ans += mp2[{a[i - 2], a[i]}];
            ans += mp3[{a[i - 1], a[i]}];
            ans -= 3ll * mp[{a[i - 2], a[i - 1], a[i]}];
            mp1[{a[i - 2], a[i - 1]}]++;
            mp2[{a[i - 2], a[i]}]++;
            mp3[{a[i - 1], a[i]}]++;
            mp[{a[i - 2], a[i - 1], a[i]}]++;
        }
        cout << ans << endl;
    }
    return 0;
}

D.Ingenuity-2 (思维)

题意:

我们把火星表面想象成一个无限坐标平面。最初,"毅力-2 号 "漫游车和 "智慧-2 号 "直升机位于坐标为 (0,0)(0, 0)(0,0) 的点上。现在为它们专门开发了一套指令 sss ,由以下类型的 nnn 指令组成:

  • NNN:向北移动一米(从点 (x,y)(x, y)(x,y) 到 (x,y+1)(x, y + 1)(x,y+1) );
  • SSS:向南移动一米(从点 (x,y)(x, y)(x,y) 到 (x,y−1)(x, y - 1)(x,y−1) );
  • EEE:向东移动一米(从点 (x,y)(x, y)(x,y) 移至点 (x+1,y)(x + 1, y)(x+1,y) );
  • WWW:向西移动一米(从点 (x,y)(x, y)(x,y) 移至 (x−1,y)(x - 1, y)(x−1,y) )。

每条指令必须由漫游车或直升机执行。此外,漫游车或直升机都必须至少执行一条指令。你的任务是分配指令,使直升机和漫游者在执行所有 nnn条指令后,最终到达相同的点,或者确定这是不可能的。

分析:

我们首先考虑不可能的情况:

  • nnn为奇数
  • NNN和SSS,EEE和WWW的奇偶性不一致

  • n=2n=2n=2,但两次行动不相同

除掉上述情况,我们可以按照以下顺序执行目标:
将NNN和SSS先分配给直升机,再分配给探测车。EEE和WWW的分配顺序则相反,这样我们可以保证符合题意。

代码:

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

int main() {
    int T;
    cin >> T;
    while (T--) {
        int n;
        cin >> n;
        vector<char> a(n);
        map<char, int> m;
        for (auto &t: a) {
            cin >> t;
            m[t]++;
        }
        if (n % 2 || m['N'] % 2 != m['S'] % 2 || m['E'] % 2 != m['W'] % 2) {
            cout << "NO" << endl;
            continue;
        }
        if (n == 2 && a[0] != a[1]) {
            cout << "NO" << endl;
            continue;
        }
        vector<char> ans(n);
        for (auto tmp: {'N', 'S', 'E', 'W'}) {
            int flag = 0;
            if (tmp == 'N' || tmp == 'S') flag = 1;
            for (int i = 0; i < n; i++) {
                char it = a[i];
                if (it == tmp) {
                    if (flag) {
                        ans[i] = 'R';
                    } else {
                        ans[i] = 'H';
                    }
                    flag ^= 1;
                }
            }
        }
        for (auto &tmp: ans) cout << tmp;
        cout << endl;
    }
    return 0;
}

E.Money Buys Happiness(动态规划)

题意:

作为一名物理学家,查理喜欢用简单精确的语言来规划自己的生活。

在接下来的mmm个月里,从没有钱开始,查理将努力工作,每月赚取xxx英镑。在第iii月(1≤i≤m)(1\le i \le m)(1≤i≤m)里,将有一次机会,付出cic_ici​英镑的代价,获得幸福hih_ihi​。

不允许借贷。在第iii月赚到的钱只能在之后的第jjj月(j>ij\gt ij>i)花掉。

既然物理学家不会编程,帮查理找出幸福的最大值吧。

分析:

从数据范围可以得知天数和可以得到的所有的幸福值数据范围很小,考虑dpdpdp。

状态iii表示第几天,状态jjj表示幸福值。

dpijdp_{ij}dpij​代表iii天获得jjj点幸福值所剩的最多钱。

每次把这个月剩的钱数和这个月新赚的的钱数加到下一个月。 如果当前的钱数可以购买今天的幸福值的时候,购买之后下个月对应的幸福度所剩的钱数和和我当前的钱数+本月的钱数-买本月幸福度所花费的钱取个最大值即可。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const LL N = 2e5 + 10;
const LL MIN = -1e18;
LL a[N], b[N];
LL dp[100][N];

void solve() {
    LL m, x;
    cin >> m >> x;
    LL sum = 0;
    for (LL i = 1; i <= m; i++) {
        cin >> a[i] >> b[i];
        sum += b[i];
    }
    for (LL i = 0; i <= m + 1; i++) {
        for (LL j = 0; j <= sum; j++) {
            dp[i][j] = MIN;
        }
    }
    dp[1][0] = 0;
    for (LL i = 1; i <= m; i++) {
        for (LL j = 0; j <= sum; j++)
            dp[i + 1][j] = dp[i][j] + x;
        for (LL j = 0; j <= sum; j++) {
            if (dp[i][j] >= a[i]) {
                dp[i + 1][j + b[i]] = max(dp[i + 1][j + b[i]], dp[i][j] + x - a[i]);
            }
        }
    }
    for (LL i = sum; i >= 0; i--) {
        if (dp[m + 1][i] >= 0) {
            cout << i << endl;
            return;
        }
    }
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

F.Cutting Game(模拟、数据结构)

题意:

爱丽丝和鲍勃又在玩一个游戏。他们有一个大小为a×ba\times ba×b(1≤a,b≤1091\le a,b\le 10^91≤a,b≤109)的网格,网格上有nnn个筹码,每个单元格中最多有一个筹码。位于第xxx行和第yyy列交点的单元格坐标为(x,y)(x, y)(x,y)。

爱丽丝先下一步棋,然后棋手们轮流下棋。在每一步棋中,棋手可以从剩余网格的开头或末尾切掉几行或几列(但不是全部),并为网格切掉部分的每一个筹码赢得一分。每一步棋都可以用字符"U"、“D”、"L"或"R"以及整数kkk来描述:

  • 如果字符为"U",那么将剪切剩余的前kkk行;
  • 如果字符为"D",则将剪切剩余的最后kkk行;
  • 如果字符为"L",则将剪切剩余的前kkk列;
  • 如果字符为"R",则将剪切剩余的最后kkk列。

根据网格的初始状态和玩家的移动,确定爱丽丝和鲍勃分别获得的点数。

分析:

以横坐标正序,横坐标倒序,纵坐标正序和纵坐标倒序分别对于所有点建立优先队列。

对于询问,这里以"U"操作为例,首先可以计算出新的矩形上边界,然后就可以在优先队列中得到横坐标在被截取范围内的所有点。然后,只需要判断该点的纵坐标是否在当前未被截去的纵坐标范围内即可。

实现的时候用mapmapmap维护每个点是否被取走,实现方式是类似的。因为每个点只会被取到四次,总时间复杂度为
O(nlogn)O(nlogn)O(nlogn)。

代码:

#include<bits/stdc++.h>
typedef long long LL;
using namespace std;
map<pair<LL,LL>,LL>mp;
void solve(){
    mp.clear();
    LL u,d,l,r,a,b,n,m;
    cin>>a>>b>>n>>m;
    u=1,d=a,l=1,r=b;
    priority_queue<pair<LL,LL>>q1,q2,q3,q4;
    for(LL i=1;i<=n;++i){
        LL x,y;cin>>x>>y;mp[make_pair(x,y)]=1;
        q1.push(make_pair(x,y));
        q2.push(make_pair(-x,y));
        q3.push(make_pair(y,x));
        q4.push(make_pair(-y,x));
    }
    LL ans[2]={};
    for(LL i=1;i<=m;++i){
        char op;
        LL t;
        cin>>op>>t;
        if(op=='U'){
            u+=t;
            while(!q2.empty()){
                auto U=q2.top();
                if(-U.first>=u)
                    break;
                if(mp[make_pair(-U.first,U.second)]){
                    mp[make_pair(-U.first,U.second)]=0;
                    ++ans[i%2];
                }
                q2.pop();
            }
        }
        if(op=='D'){
            d-=t;
            while(!q1.empty()){
                auto u=q1.top();
                if(u.first<=d)
                    break;
                if(mp[u]){
                    mp[u]=0;
                    ++ans[i%2];
                }
                q1.pop();
            }
        }
        if(op=='L'){
            l+=t;
            while(!q4.empty()){
                auto u=q4.top();
                if(-u.first>=l)
                    break;
                if(mp[make_pair(u.second,-u.first)]){
                    mp[make_pair(u.second,-u.first)]=0;
                    ++ans[i%2];
                }
                q4.pop();
            }
        }
        if(op=='R'){
            r-=t;
            while(!q3.empty()){
                auto u=q3.top();
                if(u.first<=r)
                    break;
                if(mp[make_pair(u.second,u.first)]){
                    mp[make_pair(u.second,u.first)]=0;
                    ++ans[i%2];
                }
                q3.pop();
            }
        }
    }
    cout<<ans[1]<<' '<<ans[0]<<endl;
}

int main(){
    LL t;
    cin>>t;
    while(t--)
        solve();
    return 0;
}

G.Money Buys Less Happiness Now(数据结构)

题意:

在这个版本的题目中,每个月只能购买hi=1h_i=1hi​=1幸福,但月数却大大增加了。我们进入了量子幸福和时间膨胀的领域。

作为一名物理学家,查理喜欢用简单精确的语言来规划自己的生活。

在接下来的mmm个月里,查理将从没有钱开始,努力工作,每月赚取xxx英镑。在第iii个月(1≤i≤m)(1\le i \le m)(1≤i≤m)里,只有一次机会,付出cic_ici​英镑的代价来获得一个单位的幸福。每月不能购买超过一个单位。

不允许借贷。在第iii月赚到的钱只能在之后的第jjj月花掉(j>ij\gt ij>i)。

帮查理找出可达到的最大幸福值吧。

分析:

本题用优先队列维护即可,每次如果当前费用足够直接购买,否则查看先前购买的最贵的是不是比当前的还贵,如果是的就不要前面那个,选择当前的幸福感,否则就放弃当前的物品。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;

void solve() {
    LL n, x, sum = 0;
    cin >> n >> x;
    priority_queue<LL> q;
    for (int i = 1; i <= n; i++, sum += x) {
        LL tmp;
        cin >> tmp;
        if (sum >= tmp) {
            q.push(tmp);
            sum -= tmp;
        } else if (q.size()) {
            LL pre = q.top();
            q.pop();
            if (pre > tmp) {
                sum += pre;
                sum -= tmp;
                q.push(tmp);
            } else
                q.push(pre);
        }
    }
    cout << q.size() << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

赛后交流

在比赛结束后,会在交流群中给出比赛题解,同学们可以在赛后查看题解进行补题。

群号: 704572101,赛后大家可以一起交流做题思路,分享做题技巧,欢迎大家的加入。

移动端UI自动化测试新框架Maestro:声明式语法与实战指南 UI自动化测试是保障移动应用质量的关键环节,其核心原理是通过脚本模拟用户操作,对应用界面进行自动验证。传统命令式框架(如基于Selenium WebDriver的Appium)虽然控制粒度细,但脚本编写和维护成本较高。声明式测试框架则通过描述“做什么”而非“怎么做”,显著降低了技术门槛和维护复杂度,其技术价值在于提升测试脚本的可读性、编写效率与跨团队协作能力。在移动端测试领域,这尤其适用于需要快速验证核心业务流程、进行冒烟测试和回归测试的场景。本文聚焦的**Maestro框架**,正是这一理念的杰出实践。它 阅读详情

相关推荐

激光三角测量法:斜射与直射式技术的原理与应用解析

本文深入解析激光三角测量法中斜射式与直射式技术的原理、应用及对比。斜射式适用于高精度小范围测量,尤其擅长处理反光表面;直射式则适合大范围位移检测,结构更简单。文章详细介绍了两种技术的光路分析、数学建模、应用场景及选型建议,并探讨了系统校准与误差分析方法,为工业检测领域提供实用参考。

weixin_29280219的博客 414

Codeforces Round 946 (Div. 3)( 5 / 7 )

【代码】Codeforces Round 946 (Div. 3)( 5 / 7 )

2302_79268945的博客 340

Multisim14.0仿真实战:从零搭建RS/JK触发器电路(附真值表+波形图)

本文通过Multisim 14.0软件,提供了从零搭建RS触发器和JK触发器电路的详细仿真实战教程。内容涵盖核心概念解析、电路搭建步骤、动态波形观测及真值表分析,重点探讨了RS触发器的非法状态问题以及JK触发器的四种工作模式,帮助读者直观理解时序逻辑电路的“记忆”功能与设计要点。

weixin_29175469的博客 273

codeforce round 946 div3 A-E 题解

早上vp这div3一开始看这题还看错了,其实就是贪心的先放2*2的方格,之后考虑剩余的方格放1*1的方格,计算所需的数量即可。

2401_82728478的博客 551

C++-ONNX:用onnxruntime部署自己的模型【Pytorch导出.onnx】【Tensorflow导出.onnx】【C++用onnxruntime框架部署并推理】

微软联合Facebook等在2017年搞了个深度学习以及机器学习模型的格式标准–ONNX,旨在将所有模型格式统一为一致,更方便地实现模型部署。现在大多数的深度学习框架都支持ONNX模型转出并提供相应的导出接口。ONNXRuntime(Open Neural Network Exchange)是微软推出的一款针对ONNX模型格式的推理框架,用户可以非常便利的用其运行一个onnx模型。ONNXRuntime支持多种运行后端包括CPU,GPU,TensorRT,DML等。

u013250861的博客 5766

FFmpeg入门详解之110:RTSP协议讲解

TCP/IP 协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTSP传送的是多媒体数据。正在上传…重新上传取消RTSP是基于文本的协议,采用ISO10646字符集,使用UTF-8编码方案。行以CRLF中断(\r\n:10,13:0x0A,0x0D),包括消息类型、消息头、消息体和消息长。

福优学苑@音视频+流媒体 2529

【题解】CF1974G Money Buys Less Happiness Now

反悔贪心的过程是这样的:和普通的贪心一样,我们在每一个月份依然能购买幸福就购买幸福。但是当我们没有钱购买时,我们可以从之前购买幸福每一次花费的英镑数中取一个最大值,如果最大值比我们此刻购买需要花费的英镑数多,则我们可以实现“退货”,把我们的英镑余额加上最大值。这时就可以购买本月的幸福了。但这一道题直接用贪心存在一个问题,就是金钱总数并不是固定的,而是每个月一点一点发,存在一定的后效性。相比,这道题的数据范围明显就不能动态规划,但是好在,这一题变成了通过。注意:在“退货”的过程中,我们先将幸福值减去。

liyp0036的博客 978

【用ArcGIS制作一张好看的中国月度气温图

要最后选中那个事先调整好的那个数据框,这样其他两个数据框才能和其大小一致。

J_Giser的博客 1017

Codeforces Round 946 (Div. 3)C. Beautiful Triple Pairs

给你一个长度为n的数组a,请你求出所有三元组。

lzltxdy的博客 1991

STM32实战开发(65):STM32摄像头图像采集开发教程

我们将会详细介绍如何使用STM32进行摄像头控制、图像数据采集以及如何将采集到的图像数据传输到其他设备进行处理。通过这篇博客,您将能够掌握STM32与摄像头模块的图像采集技术,应用于各种图像处理场景。为了确保STM32能够正确接收图像数据,我们需要配置STM32的GPIO引脚,并通过外部中断捕获这些信号。为了实现更高效的图像采集,可以通过DMA进行数据传输,将图像数据直接从GPIO引脚存储到内存中。通过DMA传输,我们可以将采集到的图像数据直接存储在内存中的一个缓冲区,然后进行后续的图像处理。

2201_76125393的博客 2537

Oracle EBS Interface/API(49)- AP付款取消API

Oracle EBS AP付款取消API介绍和简单实例

陈显平的专栏-Oracle EBS 850

Codeforces Round #946 (Div. 3)(A-E) python

哈希表存储当前幸福的所需花费的最小值,遍历每一月,若钱数符合则更新哈希表取最小花费,最后找能得到的最大幸福度。注意,若以(0, 0)为终点时,要手动使其完成一次来回的操作,防止出现未行动的可能。将最终x,y除二,即可得到他们的终点,然后模拟其中一者走到终点的过程即可。观察数据,发现c很大但m和h很小,考虑以当前的幸福度为容量进行dp,一个屏幕最多能装两个大方格,先放完大的,剩下的空隙放小的,不够再补。哈希表存一下不同的分别为第1,2,3位时,不同取值对应的剩下元素值。

wyzkeyy的博客 736

使用机器学习算法预测黄金价格

在本文中,我们将使用线性回归、XGBoost和LSTM这三种不同的机器学习算法来预测黄金价格。接下来,我们使用线性回归、XGBoost和LSTM分别建立了模型,并进行了训练和预测。这些机器学习算法可以帮助我们对黄金价格进行预测,但请注意,市场价格受多种因素影响,因此预测结果可能并不完全准确。接下来,我们需要对数据进行一些预处理,以便用于机器学习模型的训练和测试。我们将使用80%的数据作为训练集,20%的数据作为测试集。最后,我们将绘制每个模型的预测结果,并将其与实际价格进行比较,以评估模型的性能。

QromMatlab的博客 1316

Codeforces Round 946 (Div. 3)

有两个棋子,一个为r,另一个为h,初始时都在(0,0),有四种操作(N,S,W,E),N向上移动一格,S向下移动一格,E向右移动一格,W向左移动一格。2.当两个同时可以相互抵消时,当操作次数为2时,一定不存在,否则可以将其中一个棋子向一个方向移动一次然后在反方向移动一次,别的操作都分配给另一个棋子,这样在最终两个棋子都在原点。存在一种变换操作,有一个原始字符串s,首先构造辅助字符串r,该字符串由字符串s中所有不同的字母组成,按字母顺序书写,然后将s的每一个字符替换成对应r的对称字符。的网格,不够就再添加。

m0_74461146的博客 773

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Codeforces Round 946 (Div.3)

Codeforces Round 946 (Div.3) Problems A. Phone Desktop Problems B. Symmetric Encoding Problems C. Beautiful Triple Pairs Problems D. Ingenuity-2 Problems E. Money Buys Happiness

鱼香rose_的博客 871

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Codeforces Round 946

Codeforces Round 946

青少年趣味编程 872

Codeforces Round 946 (Div. 3) G. Money Buys Less Happiness Now(反悔贪心)

则需要进行反悔操作。从大根堆里面取出最大的。和一个大根堆,大根堆记录用了哪些。我们先尝试获得当前月的幸福,在每个月的月末,我们让。最终的答案即为大根堆中。我们维护当前拥有的钱。

weixin_74754298的博客 1204

Codeforces Round 946 (Div. 3)A-G

, 可以想到这种情况只有两种, 也就是每种操作出现一次以及某一轴上的正负操作都为1,另一轴上没有, 所以可以特判。首先可见三元组的个数并不多, 所以我们可以考虑记录下第一个,第二个相等的个数s1,第一个,第三个相等的个数s2, 第二个,第三个相等的个数s3, 然后在记录全部相等的个数s,那么[x, y, z]能够给答案做出的贡献为s1 + s2 + s3 - 3 * s, 考虑到某一对答案交换顺序还是这一对,所以我们可以从左向右维护s, s1, s2, s3, 或者全部相加除2, 这里我是从左向右维护。

2301_80210089的博客 1154

Codeforces Round 971

Codeforces Round 971

青少年趣味编程 1514

codeforces round 946(div.3)

对于一定量的有NS字符构成的字符串,我们要把它平均分配给a,b两辆车,则我们可以对NS赋值,开始时N=S=0,当字符赋值为零时,我们把这个字符给a,同时改变该字符的赋值为1,当字符赋值为1时,我们把这个字符给b。最后判断两字符的赋值是否相同,若相同,则a,b两车到达的位置相同。最后还需保证两辆车都必须移动过,则我们初定义NS的赋值为0,WE的赋值的赋值为1,赋值为0的字符给a车,赋值为1的字符给b车,尽量使两辆车都移动,最后再用一个条件判断是否两辆车都移动了。以第一组数据为例,3 2 2 2 3。

2301_79426686的博客 1978

Codeforces Round 929

Codeforces Round 929

青少年趣味编程 1021

Codeforces Round 950

Codeforces Round 950

青少年趣味编程 966

Codeforces Round 946 (Div. 3) F题 Cutting Game(双指针,模拟)

使用双指针,维护两个数组剩下的点的头和尾。维护两个数组,一个按照。

weixin_74754298的博客 411

Codeforces Round 946 (Div. 3)题解

题解,水题一个,不过多阐述,就是说,有两种应用,一种是2x2的,另一种是1x1的,问然后有x个1x1的应用,有y个2x2的,问这些应用最少占据多少屏幕(屏幕为5x3),这题显而易见,2x2的应用一个屏幕里最多放两个,那么我们可以先去y/2先去找2x2的应用占据多少个屏幕,然后留下来7*y/2个1x1应用的空间,然后判断y是奇数还是偶数,如果是奇数屏幕+1.留下空间,再+11,最后再去与x比较,>x说明,就是前面的那些屏幕,少了,就去x-留下空间数量再除以15,并且判断余数,是否需要再去+1。

2301_80475191的博客 1227

Codeforces Round 946 (Div. 3) A~E G

思路:单独存下第12个数相同的个数 23个数相同的个数 13个数相同的个数 123都相同的个数 每次加上每两个为相同的数的个数 然后减去三个数都相同的 因为如果三个数都相同了 前三种也都符合了 所以减去相同的时候 就得减去三倍。思路:一个屏幕可以放下两个2x2的应用 所以我们先把2x2的应用先放下 看一下需要几个屏幕 然后把这些屏幕的剩余空间计算出来 放1x1的应用。思路:因为更换前后的数在排序去重后没有变化 所以将更新之后的数放进vector里排序去重 再找到一一对应的关系 从而还原字符串。

xiaolemyzq的博客 1308
上一篇: Codeforces Round 945 (Div. 2) A~E
下一篇: 信息学一周赛事安排
AC-Panda
博客等级 码龄5年 1736粉丝 191原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值