Codeforces Round #490 (Div. 3)

STM32F030F4P6实战:LL库+DMA驱动WS2812全流程(附避坑指南) 本文详细介绍了如何使用STM32F030F4P6的LL库和DMA驱动WS2812 LED灯带的全流程,包括硬件选型、CubeMX配置、LL库与DMA关键实现、数据格式转换及调试技巧。特别提供了避坑指南,帮助开发者避免常见错误,提升开发效率。 阅读详情

A.
直接拿个deque模拟一下就完了

#include<cstdio>
#include<iostream>
#include<deque>
#include<algorithm>
using namespace std;
int main()
{
    int n,k,i,j,cnt=0;
    cin>>n>>k;
    deque<int>que;
    for(i=1;i<=n;i++){
        cin>>j;que.push_back(j);
    }
    while(!que.empty()&&que.back()<=k){
        cnt++;que.pop_back();
    }
    while(!que.empty()&&que.front()<=k){
        cnt++;que.pop_front();
    }
    cout<<cnt<<endl;

    return 0;
}

B.
把所有因数从小到大排一遍再反着reverse一下就行

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
int main()
{
    int n,i,j,k;
    //string str;
    char str[105];
    cin>>n>>str+1;
    vector<int>div;
    for(i=1;i<=n;i++){
        if(n%i==0)
            div.push_back(i);
    }
    for(auto a:div){
        reverse(str+1,str+1+a);
    }
    cout<<str+1<<endl;

    return 0;
}

C.
从a~z依次统计每个字母出现的次数,从a~z依次减去直到满足要求即可。

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int cnt[30];
int main()
{
    int n,k,i,j;string str,str1;
    cin>>n>>k>>str;
    for(auto a:str)
        cnt[a-'a'+1]++;
    for(i=1;i<=26;i++){
        if(k<cnt[i])break;
        k-=cnt[i];
    }
    cnt[i]=k;i++;
    for(;i<=26;i++)cnt[i]=0;
    for(auto a:str){
        if(cnt[a-'a'+1]){
            cnt[a-'a'+1]--;
        }
        else
            str1+=a;
    }
    cout<<str1<<endl;

    return 0;
}

D.
题目有一个简单而且感觉上很对事实上也很对但是严格证明并不容易的想法,就是对于每个数,把他移到最近的能放下他的位置,最终得出的一定是最优解。于是从前往后每读取一个数,就找一个最近的位置把他给放进去…

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=2e5+5;
int next1[N],cnt[N],a[N],limit;
int getpos(int x)//找到最近的能放这个余数的位置
{
    if(cnt[x]<limit)return x;//如果这个余数位置本身没满那么不需要进行更改
    return next1[x]=getpos(next1[x]);//更新当前余数的下一个可放位置
}
int main()
{
    int n,m,i,j;
    cin>>n>>m;
    for(i=1;i<=n;i++)scanf("%d",&a[i]);
    for(i=0;i<m;i++)next1[i]=(i+1)%m;//初始每个余数的下一个可放位置就是余数+1的位置
    limit=n/m;long long ans=0;//记得ll!!!否则会爆
    for(i=1;i<=n;i++){
        int t=a[i]%m;
        int x=getpos(t);
        cnt[x]++;
        ans+=(x-t+m)%m;
        a[i]+=(x-t+m)%m;
    }
    cout<<ans<<endl;
    for(i=1;i<=n;i++)
        printf("%d%c",a[i],i==n?'\n':' ');

    return 0;
}

E.
这是个艹蛋的题目…wa了一晚上的test31…
其实,很容易发现我们想干的事情是找出每一组的城市,使得同一组中的城市都可以从1个点出发而到达本组中的所有点,并且总组数最少。或者,通俗地说,类似于找出所有链的起始点,从s连边至这个点即可(但是这种说法并不准确,因为还会有独立环)。
那么,我们可以走一遍dfs,对于每个点,如果他没有被dfs过,就以他为起点dfs一遍,途中经历的所有点的最早祖先都标记为这个点。然后,扫一遍所有点,如果这个点的祖先所在的那一组还没被连接,ans++
记得减去s(如果s本身就是祖先的话);

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
const int N=5005;
vector<int>G[N];
bool vis[N];
int par[N];
void dfs(int fa,int x)
{
    if(par[x]==fa)return;
    par[x]=fa;
    for(auto a:G[x])
        dfs(fa,a);
}
int main()
{
    int n,m,s,i,j,k;
    cin>>n>>m>>s;
    for(i=1;i<=m;i++){
        int a,b;scanf("%d%d",&a,&b);
        G[a].push_back(b);
    }
    dfs(s,s);
    for(i=1;i<=n;i++){
        if(!par[i])
            dfs(i,i);
    }
    int ans=0;
    for(i=1;i<=n;i++){
        if(!vis[par[i]]){
            ans++;vis[par[i]]=true;
        }
    }
    cout<<ans-(vis[s]?1:0)<<endl;

    return 0;
}
Windows如何使用Anaconda 3进行keras环境的配置 ** Windows如何使用Anaconda 3进行keras环境的配置 搭建Keras环境* Anaconda3如何安装keras,主要包括下面三步: 1.安装mingw libpython 2.安装theano 3.安装keras 若你还没有按装anaconda,赶紧下载安装吧! 下载途径有两个 (1)Anaconda版本为Anaconda 4.4.0,对应的python版本为3.6,附上An... 阅读详情

相关推荐

自制非接触式静电探测仪:从振动电容原理到微弱信号检测实践

微弱信号检测是电子测量领域的核心挑战之一,尤其在需要避免物理接触或防止干扰的场景中。其基本原理在于将难以直接获取的微小物理量(如电流、电压)通过传感器转换为电信号,再经过放大、滤波等处理进行提取。锁相放大技术是解决这一问题的关键手段,它利用参考信号与目标信号的同步性,从强噪声背景中恢复出有效信息,极大提升了信噪比和测量灵敏度。这项技术的工程价值在于实现了对纳安级电流、微伏级电压等高难度参数的可靠测量。在静电防护、材料表面电位分析、生物电信号采集等应用场景中,非接触式测量需求广泛。本文聚焦的基于振动电容原理的

weixin_32349093的博客 273

Codeforces Round#490 Div3

这次的题解,我想划划水,因为前三题很快就写出来了,而且对了,第四题写了一个不过一直超时,赛后改了一下,也过了。A题#include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; #include&lt;vector&gt; using namespace std; t...

Bowen的博客 364

vmware虚拟机网络连接问题

主机:ubuntu14.04 Vitual Network Editor

入门虽易,精通不易,且学且珍惜! 1354

Codeforces Round #490 (Div. 3) C. Alphabetic Removals

1,题目描述: C,按字母序列删除。 给你一个长度为n的由小写字母组成的字符串s。P想要删除k个字母从s字符串中。 P用下面描述的算法k次: *如果存在‘a’就删除最左边出现的那个病停止计算,否则进行下一项 *如果存在‘b’就删除最左边出现的那个病停止计算,否则进行下一项 *……. *删除最左边出现的‘z’,并停止计算。 这个算法每次只能从字符串中,删除一个字符串。P操作k次,因为...

Light2Chasers的博客 291

OpenMV模块视觉测距(避障)+颜色识别+TFT-LCD显示(实现原理与代码分析)

上图所示代码实际运行的帧率比较低,主要原因有以下两个:1.硬件问题,博主使用的版本比较低,可以尝试使用高版本OpenMV2.图像滤波问题。之前加入图像滤波是想提高色块识别的准确性,但是相应的运算速度也会下降。

ediykk的博客 1万+

linux应用程序段错误调试

一、堆、栈 在分析段错误之前,先了解一下什么是堆?什么是栈? 堆:一般由开发者分配释放,如果没有释放,程序结束时,在有的OS中可能会被自动释放,分配方式类似于链表。堆的操作方式为,队列优先,先进先出的原则。 栈:由操作系统自动分配,存放函数的参数值,局部变量。栈的操作方式为,先进后出的原则。 堆栈中定义了一些操作。 两个最重要的是PUSH和POP。  PUSH:操作在堆栈的顶部加入一个元素...

农村种地人 1111

Codeforces Round #481 (Div. 3) 全题解

A题,题目链接:http://codeforces.com/contest/978/problem/A 解题心得:题意就是让你将这个数列去重,重复的数只保留最右边的那个,最后按顺序打印数列。set+map。 #include <bits/stdc++.h> using namespace std; const int maxn = 10...

weixin_30457465的博客 279

从零开始学习PX4源码0(固件下载及编译)

本节主要记录从零开始学习PX4源码1(固件下载)的过程,欢迎批评指正!!!下载固件主要分为两个版本,之前稳定版本和最新官网发布版本,为什么要下载两个版本,主要是说明两个版本有一定的差异(开发环境及源码文件格式等),我们是从之前版本开始学习,为什么不从最新的?因为之前版本代码文件格式还是固定的,最新的变化很大,不利于初学者学习,apm和px4不好的地方就是之前版本v1.7.2和最新版本v1.14.0有些文件总是在变化,这样很不好。

陌城烟雨 4616

Codeforces Round #490 (Div. 3) D. Equalize the Remainders

1,题目描述: D,使余数相等。 给你一个含有n个整数的数组a1,a2,…,an,和一个正整数m。保证m是n的因数。 在单次移动中,你可以选择在1到n之间的任一位置的数ai加1. 计算cr(0~m-1)——每个元素除以m之后的余数r。换句话说,对于每个余数, 找到与它相对应的元素。 你的任务是改变数组的元素使得c0=c1=…=cm-1=n/m; 找到满足上述要求的最小的需要改变的次数...

Light2Chasers的博客 617

PON架构(全光网络)

目前组网架构世界上有一种最快的速度又是光,以前传统以太网络规划满足不了现在的需求。有线网 无线网 全光网络方案场景 全光网络分类 以太全光网络 PON(Pas-sive-Optical Network 无源光网络) 再典型的中大型高校网络中 推荐万兆入室 千兆到桌面的带宽设计 一般三层 (终端-接入层-汇聚层-核心层-出口(安全设备)-互联网) 单校区核心设备 一般采用两台高性能的核心交换机 双机的方式采用的是 M-LAG 多校区之间核心交换机采用1

qq_56248592的博客 6268

[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。......

HowieXue 薛永浩的博客 1万+

Codeforces Round #490 (Div. 3)B. Reversing Encryption

1,题目描述: B,反转加密 一个长度为n的字符串s可以用下面的算法进行加密。 *降序遍历n的所有因数(从n到1) *对于每个因数d,倒置子串s[1……d]. 例如,利用上面的算法对字符串s=“codeforces”进行转化。“codeforces”-&gt;”secrofedoc” -&gt;”orecsfedoc”-&gt;”rocesfrdoc”-&gt;”rocesfedoc”...

Light2Chasers的博客 251

【漏洞复现】WordPress Plugin NotificationX 存在sql注入CVE-2024-1698

技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。WordPress和WordPress plugin都是WordPress基金会的产品。WordPress Plugin NotificationX 存在安全漏洞,该漏洞源于对用户提供的参数转义不充分以及对现有 SQL 查询缺乏充分的准备,很容易通过“type”参数受到 SQL 注入攻击。

失心少年 1381

Codeforces Round #490 (Div. 3)(A-E)题解

Codeforces Round #490 (Div. 3)(A-E)题解 传送门 A. Mishka and Contest 思路:签到题,双指针模拟即可。 时间复杂度:O(n)O(n)O(n) #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=105+5,M=1e6+5,inf=0x3f3f3f3f,mod=1e9+7; #define mst(a) memset(a,0,sizeo

Harris-H的博客 743

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Codeforces Round #490 (Div. 3)【完结】

2022.3.3 题单地址: 目录

辉小歌的博客 660

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Codeforces Round #490 (Div. 3) C E

C - Alphabetic Removals 题意:给一个字符串,从左边开始删除第一个’a’,第二个’a’… 一直删到没有,再从左边开始删除第一个’b’,第二个’b’ 这样以此类推,给定字符串的长度和需要删除字符的数量。 思路:直观一点的思路就是把 a~z 的的坐标分类整理好,存在一个二维vector里面,然后按顺序把这些坐标标记删除就好了。但是在删除的过程中奈何 erase 函数复杂度感人,奈...

CCSU_GCR的博客 219

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Codeforces Round #490 (Div. 3) 訓練總結及題解

这场AB很快就秒了,C没读懂题,D也没读懂,开了E题,wa了2发之后休息了一会开始做CD,C很简单过了,然后继续怼E,wa了1发,开始看F然后开D,最后DE切换,后来发现Dwa3发是爆了int。E一直想拿并查集做懒得写tarjan,补题的时候发现了并查集的bug,最后还是拿了tarjan写。F题场后发现居然可以这样dp。 总结: 读不懂切题挺好的。 还是要注意ll D的前两wa,一个是TLE的算...

Alex Panda的博客 196

[Codeforces]Codeforces Round #490 (Div. 3)

Mishka and Contest #pragma comment(linker, "/STACK:102400000,102400000") #ifndef ONLINE_JUDGE #include "stdafx.h" #else #include<bits/stdc++.h> #endif using namespace std; typedef lo...

weixin_30375427的博客 156

Codeforces Round #490 (Div. 3) C. Alphabetic Removals

原题链接传送门 题意:给一个长度为n字符串,消除k个字符。按a-z的顺序消除,只有a消除完才能消b,b消除完才能消c……直到消除k个字符。 这里用两个for循环,一个来标记26个字母,一个用来遍历字符串。然后直接通过改变字符来达到消去目的。 #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cstdio&...

FLY的博客 220

【浮*光】【Codeforces Round #490 (Div. 3)】解题报告

来自CF999 &amp;&amp;&amp;http://codeforces.com/contest/999/problem/A#include &lt;bits/stdc++.h&gt; using namespace std; /*【A】从头或尾开始做题,只能完成小于等于k的题, 不能完成就无法前进。问最多能做多少题。 */ const int maxn = 101; int n,k,...

flora715的博客 220

Codeforces Round #490 (Div. 3) B. Reversing Encryption

B. Reversing Encryptiontime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputA string ss of length nn can be encrypted by the following algorithm:iterate...

Cantredo 259

Codeforces Round #490 (Div. 3) A. Mishka and Contest

Mishka started participating in a programming contest. There are nn problems in the contest. Mishka's problem-solving skill is equal to kk.Mishka arranges all problems from the contest into a list. Be...

loooooog的博客 130

Codeforces Codeforces Round #490 (Div. 3) D. Equalize the Remainders

题目 题意: 给出一个n,一个m(n%m==0),之后n个数,即数组a。一次操作可以对a数组任意一个元素+1。一个数组c,大小为m,**c[i]为数组a的元素对m取余结果为i的数量,问:使所有c[i]**等于n/m,至少进行多少次操作,并且输出操作后的数组a。 做法: 对于,每一个 ...

reedthink的博客 204
上一篇: Codeforces Round #489 (Div. 2)
下一篇: Codeforces Round #491 (Div. 2)
HumveeA6
博客等级 码龄17年 12粉丝 175原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值