Educational Codeforces Round 92 (Rated for Div. 2)A-E题解

一文读懂GPU通信互联技术:GPUDirect、NVLink与RDMA GPUDirect是NVIDIA开发的一项技术,旨在实现GPU与其他设备(如网络接口卡NIC和存储设备)之间的直接通信和数据传输,而无需CPU的参与。传统上,数据在GPU和另一个设备之间传输时,必须通过CPU,这导致潜在的性能瓶颈和延迟增加。GPUDirect技术则通过绕过CPU,直接访问和传输数据,显著提高系统性能。NVLink是NVIDIA开发的一种高速、高带宽的互连技术,用于连接多个GPU之间或GPU与其他设备(如CPU、内存等)之间的通信。 阅读详情

Educational Codeforces Round 92 (Rated for Div. 2)A-E题解

//写于rating值2032/2056
//昨晚vpn炸了又没能打成,早上补了一波A-E
比赛链接:https://codeforces.com/contest/1389
A题
简单数学
我们需要寻找一对x和y满足l<=x<y<=r,且l<=LCM(x,y)<=r。
首先我们规定x是x和y中较小的那一个,有一个简单的结论,LCM(x,y)=kx,也就是说LCM(x,y)必然是x的整数倍(废话),由于x!=y,因此k必须满足,k>1。也就是说LCM(x,y)至少为2x,只要2x<=r则必然有解,此时y同样取2x即可。
既然我们希望x满足2x<=r,那么x要尽可能取小,所以x取最小值l,判断l*2是否小于等于r即可。

#include<bits/stdc++.h>
#define ll long long
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        ll l,r;
        cin>>l>>r;
        if(l*2<=r) cout<<l<<' '<<l*2<<endl;
        else cout<<-1<<' '<<-1<<endl;
    }
}

B题
暴力,贪心,小结论
num[i]存储第i个数字是多少,sum[i]代表前i个数字的前缀和,he[i]代表num[i]+num[i-1]的值
首先我们考虑k次操作一直往右走的情况,那么总共能得到的分数就是sum[1+k]
接着再考虑存在往左走的情况:
每选择往左走一次,最后k次操作后我们所在的下标位置会-2。
也就是说如果我们往左走了i次,那么我们最后所在的下标位置会是1+k-2*i。
注意题目中限定了我们往左走的操作是不能连续的,也就是说我们每往左走了一步就要马上回头。
以长度n=5,k=4为例
一直往右走所走过的下标为1,2,3,4,5
如果我们选择在走到下标3的位置往左,那么结果会变成1,2,3,2,3
注意到我们最后所在的下标变成了1+k-2=3,其中下标2和下标3的数字计算了两次。

总结一下往左走一次所带来的的影响是:
1.最后所在下标位置-2。
2.如果在第i个位置选择往左走,那么i-1和i这两个位置的数会被多取一次

再注意到题目中一个特别的数据范围, 0≤𝑧≤𝑚𝑖𝑛(5,𝑘),往左走的次数最多不会超过5。
所以我们直接暴力枚举往左走了i次,然后计算出最后的位置下标lim,计算j取1到lim+1的下标位置他们he[j]中哪一个最大,贪心取i次he[j]即可。
至于这里的j为什么右侧可以去到lim+1而不是lim,结合下面这个例子理解。
长度n=6,k=4
我们可以在位置5往左走一次,经过的下标依次为1,2,3,4,5,4
注意这里最后所在的位置是4,但是我们是可以在4+1=5的位置回头往左走的。

n的和不超过3e5,z不超过5,复杂度也就是15e5的级别,暴力完全足够。

#include<bits/stdc++.h>
#define ll long long
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        ll n,k,z;
        cin>>n>>k>>z;
        vector<ll>num(n+1),sum(n+1),he(n+1);
        num[0]=sum[0]=he[0]=0;
        for(ll i=1;i<=n;i++)
        {
            cin>>num[i];
            sum[i]=sum[i-1]+num[i];
            he[i]=num[i]+num[i-1];
        }
        ll ans=sum[k+1];
        for(ll i=1;i<=z&&k+1-2*i>=0;i++)//这里要判断下k+1-2*i是不是超过下标界限了
        {
            ll lim=k+1-2*i;
            ll temp=sum[lim];
            ll Max=-1;
            for(ll j=1;j<=lim+1;j++)
            {
                if(he[j]>Max)
                {
                    Max=he[j];
                }
            }
            ans=max(ans,temp+Max*i);
        }
        cout<<ans<<endl;
    }
}

C题
字符串,暴力,小结论
往左移动之后的下标为𝑡2 𝑡3 t4 t5… 𝑡𝑛−1 𝑡𝑛 𝑡1
往右移动之后的下标为𝑡𝑛 𝑡1 𝑡2 𝑡3… tn-3 tn-2 𝑡𝑛−1
对比之后我们很容易发现,往左和往右移动之后的字符串相同,等价于原字符串中
s[i]=s[i+2]
也就是奇数下标的字符要全部相同,偶数下标的字符也要全部相同
并且由于下标是循环的,当字符串长度n是奇数的时候的时候,会有s[n]=s[2],此时n是奇数而2是偶数,这种情况下会变成整个字符串必须由相同的字符构成。

综上,最后构造的字符串长度n为奇数的时候,整个字符串必须只有一个相同的字符。
当n为偶数的时候,整个字符串需要是a和b两个字符交替出现。

注意到所有输入数据的字符串长度不超过2e5,字符只会是0-9的十个数字,因此我们直接暴力枚举a和b分别取0-9即可,复杂度2e7级别。
注意特判当a和b不相同的时候,最后构造的字符串长度n必须是偶数。

#include<bits/stdc++.h>
#define ll long long
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define llINF 9223372036854775807
using namespace std;
int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        string s;
        cin>>s;
        ll len=s.size();
        ll ans=llINF;
        for(ll i=0;i<10;i++)
            for(ll j=0;j<10;j++)
            {
                ll temp=0,tar=0;//tar为当前位置下标,tamp为删除了几个字符
                while(tar<len)
                {
                    while(tar<len&&s[tar]-'0'!=i) tar++,temp++;
                    tar++;
                    while(tar<len&&s[tar]-'0'!=j) tar++,temp++;
                    tar++;
                }
                if(i!=j&&((len-temp)&1)) temp++;//当奇数和偶数下标的字符不相同,且最后得到的字符串长度是奇数的时候,要再多删掉一个字符把字符串变成偶数长度
                ans=min(ans,temp);
            }
        cout<<ans<<endl;
    }
}

D题
贪心,分类讨论
一开始的时候我们有n段a区间为[l1,r1]和n段b区间[l2,r2],我们每次可以使其中的某一段区间往左或者往右延伸一个长度。
我们的目标是对于,对于累加对于下标1-n,ai和bi的相交长度和要大于等于目标值k。
首先按照初始给定的两个长度是否存在相交的长度分为两大类来讨论:
先预处理一下,如果r1>r2的话,交换两个长度区间,保证r1<=r2,方便后面讨论两个长度区间是否存在相交部分。
第一类,两个初始长度存在相交部分
两个区间相交部分的长度记为now,两个区间剩余长度为temp,我们初始的时候就已经拥有了now×\times×
n的相交总长度,如果这个值仍然小于k的话,我们仍然需要构造出k-now×\times×n的相交长度。
操作1对于每对初始区间来说,还拥有temp的剩余长度,这些长度我们只需要延伸两个初始区间的某一段的1个长度,即可获得1个对应相交长度。也就是我们的延伸次数和构造得到的相交长度比例是1:1。
举例来说,初始区间为[2,6]和[4,9]
相交长度为[4,6]为2,剩余部分为[2,4]和[6,9]共5。
也就是对于[2,6]和[4,9]这对初始区间,我们在接下来的5次延伸操作中,都是可以做到延伸一次便获得一个相交长度的。
比如延伸成[2,7]和[4,9]或者延伸成[2,6]和[3,9]都可以使相交长度从2+1变成3。
延伸3次[2,6]的右侧和延伸2次[4,9]的左侧共延伸5次后得到[2,9]和[2,9],总相交长度变为7。
操作2此时针对这一段区间,如果我们还想继续构造相交长度,我们则必然要使用两次延伸才能得到一个相交长度。比如各自延伸1次右侧得到[2,10]和[2,10]或者各自延伸1次左侧得到[1,9]和[1,9]。可以观察到此时的延伸次数和构造得到的相交长度比例为2:1。效率低于上面的操作1。
因此我们采取贪心的策略,尽可能使用操作1,直到这n对区间的操作1都被使用完毕,再使用操作2
第二类,两个初始长度不存在相交部分
在最初始的时候,如果两个区间不仅不存在相交部分,且边界也不相邻,那么上一类情况中的操作1和操作2都无法实现。因此我们最开始的时候必然要先使得至少一组初始区间的边界相邻。
用need代表把两个初始区间延伸为边界相邻需要的延伸次数,get为每一组区间在延伸为边界相邻后得到的可以进行操作1的次数,cas记录当前已经构造了多少组边界相邻的区间。
举例来说,初始区间为[2,4]和[5,6]。
此时need=1,延伸1次后就可以使得这两个区间边界相邻,比如延伸1次[2,4]的右侧构造[2,5]和[5,6]或者延伸一次[5,6]的左侧构造[2,4]和[4,6]。在这之后我们会得到get=6-2=4次的操作1的次数。
我们继续采取贪心的策略
最开始的时候cas=0,我们必然要执行一次need,再这之后取min(get,k),需要构造的k-=min(get,k)继续循环。
如果k<need,代表我们再多构造一组相邻区间+操作1,也就是执行need+k次的延伸是大于2×\times×k次的,如果此时cas>1也就是代表我们有进行操作2的选择能力的话(前面已经有相邻区间供进行操作2),我们直接加上2×\times×k次即可。
另外如果cas==n,也就是代表没有多余的初始区间让我们去执行操作1了,此时也直接加上2×\times×k

#include<bits/stdc++.h>
#define ll long long
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define llINF 9223372036854775807
using namespace std;
int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        ll n,k;
        cin>>n>>k;
        ll l1,r1,l2,r2;
        cin>>l1>>r1>>l2>>r2;
        if(r1>r2)//保证r1<=r2方便下面讨论[l1,r1]和[l2,r2]是否存在相交部分
        {
            swap(l1,l2);
            swap(r1,r2);
        }
        if(r1>=l2)//第一类情况,初始区间便存在相交部分
        {
            ll now,temp;
            if(l1>=l2)
            {
                now=r1-l1;
                temp=r2-r1+l1-l2;
            }
            else
            {
                now=r1-l2;
                temp=r2-r1+l2-l1;
            }
            now*=n;//now为目前的相交总长度
            temp*=n;//temp为操作1能进行的最多次数
            if(now>=k) cout<<0<<endl;
            else
            {
                k-=now;
                if(k<=temp) cout<<k<<endl;
                else cout<<temp+(k-temp)*2<<endl;
            }
        }
        else//第二类情况,初始区间不存在相交部分
        {
            ll need=l2-r1;//把初始一对区间延伸至边界相邻需要的延伸次数
            ll get=r2-l1;//初始一对区间延伸至边界相邻后,我们得到的可以进行操作1的次数
            ll ans=0;
            ll cas=0;//记录已经合并了多少对初始区间
            while(k)
            {
                if(cas==n)
                {
                    ans+=k*2;
                    k=0;
                }
                else if(k<need&&cas)//如果k<need代表继续构造操作1效率已经不如操作2
                {						//cas>0是我们能进行操作2的必须条件
                    ans+=k*2;
                    k=0;
                }
                else
                {
                    cas++;
                    ans+=need+min(get,k);
                    k-=min(get,k);
                }
            }
            cout<<ans<<endl;
        }
    }
}

E题
数论
一年有m个月,每个月有d天,每个星期w天。
现在要你求有多少对(x,y)满足x<y,且第x月第y天和第y月第x天在一个星期中对应相同,也就是说如果第x月第y天是星期二,第y月第x天也必须是星期二。
注意到第x月第y天是一年中的第x×\times×d+y天,第y月第x天是一年中的第y×\times×d+x天。
在一星期中对应的下标相同,其实也就是x×\times×d+y和y×\times×d+x对于w同余,也就是(x×\times×d+y)%w==(y×\times×d+x)%w
移项后可以得到(x-y)(d-1)%w==0,也就是(x-y)(d-1)==kw。
问题转化为了x-y的值要满足乘以d-1后是w的整数倍。
记temp=lcm(d-1,w)/(d-1),那么x-y的差值dis便是temp的整数倍。
接着在1<=x<=m和1<=y<=d中找寻有多少对(x,y)满足x-y是temp的整数倍,且x>y,且第x月第y天和第y月第x天在一个星期中对应相同。
注意到这里x和y本质上是等价的,因此范围可以限制可以统一为1<=x<=min(m,d),1<=y<=min(m,d)。
记此时的右边界为d=min(m,d)
对于某一个确定的x和y的差值dis来说
我们可以取的最小的x是1,对应的x和y是(1,1+dis)
我们可以取的最大的x是d-temp,对应的x和y是(d-dis,d)
总共有d-dis种。
而dis的取值范围,记n1=d/temp,那么dis的取值就是1×\times×temp,2×\times×temp…n1×\times×temp(dis不可超过d的范围)共n1种。
注意到这n1种dis对应的情况各自都为d-dis种,实际上就是d-1×\times×temp,d-2×\times×temp…d-n1×\times×temp,实际上就是个等差数列求和。
和等于[(d-1×\times×temp)+(d-n1×\times×temp)]*n1/2。

#include<bits/stdc++.h>
#define ll long long
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define llINF 9223372036854775807
using namespace std;

ll gcd(ll a,ll b)
{
    return b?gcd(b,a%b):a;
}

int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        ll m,d,w;
        cin>>m>>d>>w;
        if(d==1) cout<<0<<endl;
        else
        {
            ll temp=w/gcd(d-1,w);
            ll ans=0;
            d=min(m,d);
            ll n1=d/temp;
            ans=(d-temp+d-n1*temp)*n1/2;
            cout<<ans<<endl;
        }
    }
}
高通9008模式隐藏技巧:不拆机用ADB命令+Diag协议进入EDL 本文深入解析高通EDL模式(紧急下载模式)的技术原理与实战应用,详细介绍了通过ADB命令和Diag协议无需拆机进入EDL的方法。涵盖硬件/软件触发方案、跨平台工具配置、Firehose协议解析及设备救砖流程,为开发者提供从基础到进阶的完整指南。 阅读详情

相关推荐

Elsevier投稿实战:从ESWA模板到录用通知的全流程拆解

本文详细拆解了Elsevier旗下期刊ESWA(Expert Systems With Applications)的投稿全流程,从模板选择、投稿系统操作到审稿意见回复和录用后注意事项。重点分享了单栏LaTeX模板调整、APA文献格式处理、Highlights撰写技巧等实战经验,帮助研究者高效完成投稿并提升录用概率。

weixin_32715349的博客 240

Educational Codeforces Round 92 (Rated for Div. 2) A、B、C

目录A. LCM Problem题意解题思路代码B. Array Walk题意解题思路代码C. Good String题意解题思路代码 A. LCM Problem 题意 链接:LCM Problem 给出 l 、r ,求 x 、y 满足 l<=x<y<=r 且 l<=LCM(x,y)<=r 解题思路 LCM(x,y)至少是min(x,y)的2倍,所以直接构造一组最小的解(l,2l),若2l>r则无解 代码 #include<stdio.h> #inc

zjllll123的博客 433

从打印攻击到视频重放:手把手用OULU-NPU训练你的第一个活体检测模型

本文详细介绍了如何使用OULU-NPU数据集训练活体检测模型,以应对打印攻击和视频重放等安全威胁。通过PyTorch框架,从环境准备、数据加载、预处理到模型架构设计,手把手教你构建一个高效的双流网络,结合CNN和LSTM技术,提升模型在多种攻击场景下的检测准确率。

weixin_29092031的博客 385

Educational Codeforces Round 92 (ABCDE)题解

昨晚打了上面的那一场教育场,觉得有趣,然后又模拟了一下上一场教育场,找找状态手感,顺便静一静心。 A 题意: 给你两个数: l , r 。问你是否存在两个数x,y( l <= x,y <= r && x != y ) 使得 l <= lcm(x,y)<= r。 思路: 判断 r 是否 >= l*2 ,如果是 ,输出( l , 2 * l ) 即可,否则 输出(-1 -1)。 简单证明:证明就不证明了,因为电脑写公式太麻烦了(自己.

qq_43559193的博客 295

OpenVins解析:基于滤波框架的SLAM

这一方式存在的关键问题是匹配耗时很长,对性能影响显著。可以参考ORBSLAM3中的匹配方式来对其优化,比如左右目匹配可以在极线上搜索,前后帧可以利用运动先验投影匹配。理论上加入路标点会提升精度,代价是增加了计算量。着重说下基于描述子的匹配:OpenVins中匹配的方式是robust_match(),里面是调用的opencv的。openvins中不仅仅进行了传统的MSCKF更新(状态向量中不包含路标点),还在。中进行了包含路标点的估计更新。图像帧到来时,利用IMU递推得到的位姿给该图像帧赋初值。

qq_18076309的博客 4074

lisp方格网法计算土方量_分享:两期土方工程量计算(方格网法)实例例题

最近遇到一个飞时达土方软件试用版客户,咨询怎么根据平整前的原始地形图和平整后的现状地形图来计算产生的土方工程量,也就是两期土方量,且需要用方格网法来计算,作为一个老道的工程设计人员,博主对这类的项目实例例题简直太熟悉了,用飞时达土方计算软件V13.0可以很方便的计算出来。 方格网法计算两期土方量流程 一、软件安装及注册 专业的飞时达土方计算软件FastTFT,请到飞时达软件官方网站去下载,注册完...

weixin_35131425的博客 1698

Educational Codeforces Round 92 (Rated for Div. 2)

Educational Codeforces Round 92A. LCM ProblemB. Array Walk A. LCM Problem 水题,显然 2×a≤lcm(a,b)  ,  b≤lcm(a,b)2\times a\le \mathrm{lcm}(a,b) \; , \;b\le \mathrm{lcm}(a,b)2×a≤lcm(a,b),b≤lcm(a,b),那么就做完了。 B. Array Walk 很明显是个DP,但是我调了好久才对,还是太菜了。 推导过程如下: 首先对于 z=0z=

Watson的博客 299

Vitis开发环境下的双核ARM通信:Hello World背后的AMP架构解析

本文深入解析了Vitis开发环境下ZYNQ双核ARM Cortex-A9处理器的AMP架构与通信机制。通过详细的硬件配置、内存分配和核间通信实现步骤,展示了如何构建高效的双核Hello World系统,为嵌入式系统开发者提供了实用的开发指南和性能优化技巧。

weixin_29162439的博客 218

Educational Codeforces Round 92 (Rated for Div. 2)题解(A-C)

目录A.LCM ProblemB.Array WalkC. Good String A.LCM Problem 题意:给定两个整数定义的闭区间[l,r][l,r][l,r],让你在区间内找出两个数x,yx,yx,y满足LCM(x,y)≤rLCM(x,y) \le rLCM(x,y)≤r; 思路:容易验证LCM(x,y)LCM(x,y)LCM(x,y)至少是min(x,y)min(x,y)min(x,y)的二倍,所以直接构造一组最小的解(l,2l)(l,2l)(l,2l) #include <bits/

Cain-James的博客 1242

shader基于高度的权重混合

效果图: 基于高度的权重混合 , 效果描述: (1)混合:三层混合, 例如 第一层是草,第二层是石头,第三层是沙子,三者混合显示 (2)权重: 三层的权重的和 为1, 三者是此消彼长的关系 (3)高度:高度会限制或者说是 束缚 着 效果 关于混合,再多说几句: (1)基于权重的混合:权重 ,跟顺序没有关系 只跟权重的大小有关系(在一层一层界限不清晰的地方,特别适用!!效果极好!!!!) (2)基于叠加的混合: 叠加 就是 一层一层的往上加。。。。 所以顺序特别重要(在雪地等效果中使用:因为

木马人 1117

Python 爬虫实战:Twitter 数据定向抓取(特定话题 + 用户推文爬取与分析)

在社交媒体研究、舆情监测和市场分析等领域,Twitter 数据具有极高的价值。本文将详细介绍如何使用 Python 构建一个完整的 Twitter 数据爬取系统,包括特定话题和用户推文的爬取与分析。我们将涵盖从认证到数据存储、清洗、分析和可视化的全流程。

u014481728的博客 1038

Educational Codeforces Round 92 (Rated for Div. 2)解题报告

Educational Codeforces Round 92 (Rated for Div. 2) A. LCM Problem 题目大意 给定区间[l,r][l, r][l,r],让你找到正整数xxx,yyy满足l≤x<y≤rl \leq x < y \leq rl≤x<y≤r,并且l≤lcm(x,y)≤rl \leq lcm(x, y) \leq rl≤lcm(x,y)≤r 解题思路 根据题意有: l≤lcm(x,y)=x×ygcd(x,y)≤rl \leq lcm(x,y)=\fr

weixin_44211980的博客 286

58.Sobel边缘检测算子

注:在梯度运算中,很可能会出现负的灰度值,我们不能再采用uint8类型作为像素的数据类型,而是采用了CV_16S或者CV_32F这种有负数范围的类型,运算结果里的负数也不能不处理,否则在显示的时候就会被截断为0,这样就会丢失边界信息。如下图所示,对中心像素Z5求取多个方向的灰度差分,对于Z5的8邻域,分为4个方向,即对角线和水平垂直4个方向对:(z1, z9) ,(z2, z8), (z3, z7), (z6, z4) 给定邻域方向梯度矢量g的幅度为:|g| = <像素灰度差分>/<相邻像素的距离>。

twnkie的博客 4884

Educational Codeforces Round 92 (Rated for Div. 2) C. Good String

Educational Codeforces Round 92 (Rated for Div. 2) C. Good String 题目链接 Let’s call left cyclic shift of some string t1t2t3…tn−1tn as string t2t3…tn−1tnt1. Analogically, let’s call right cyclic shift of string t as string tnt1t2t3…tn−1. Let’s say string t

旺崽的博客 2896

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Educational Codeforces Round 92 (Rated for Div. 2) 题解 (A到G)

目录CF1389A - LCM ProblemCF1389B - Array WalkCF1389C - Good StringCF1389D - Segment IntersectionsCF1389E - Calendar AmbiguityCF1389F - Bicolored SegmentsCF1389G - Directing Edges CF1389A - LCM Problem 设z=LCA(x,y),l≤x,y,z≤rz=LCA(x,y),l\leq x,y,z\leq rz=LCA(x,

qq_42925924的博客 549

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Educational Codeforces Round 92 (Rated for Div. 2)题解总结

文章目录A. LCM ProblemB. Array WalkC. Good StringD. Segment Intersections A. LCM Problem Let LCM(x,y) be the minimum positive integer that is divisible by both x and y. For example, LCM(13,37)=481, LCM(9,6)=18. You are given two integers l and r. Find two inte

SDAU_LGX的博客 1215

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

第七次训练:Educational Codeforces Round 91 (Rated for Div. 2)

1.Educational Codeforces Round 91 (Rated for Div. 2) A 题意:给定一个数组。问能不能找到三个递增下标,值第二个比另两个大。   说是水题,但我提交了不只一次。因为有个细节想的一样,写出来写成了另一个样。 #include<iostream> #include<iomanip> #include<fstream> #include<cstdlib> #include<algorithm> #in

qq_45980336的博客 242

Educational Codeforces Round 173 (Rated for Div. 2) A~D

对于每个测试用例,打印一个整数 — 执行任意次数操作后可以得到的最大硬币数量。每个和应该只打印一次,即使它是由多个子数组实现的。— 问题的答案,如果不存在这样的对,则输出“-1 -1”。,当数字的各个位上数字相加是3的倍数时,该数能被3整除,如果不存在这样的对,则输出“-1 -1”。对于每个测试用例,按升序输出除以板上写的数字的奇数位。每个和应该只打印一次,即使它是由多个子数组产生的。子数组的所有可能和,包括空子数组,其和定义为。先算出A,B的取值区间,从小值遍历A的范围。

2302_80423900的博客 1182

Educational Codeforces Round 121 (Rated for Div. 2)题解

Codeforces Round #766 (Div. 2) 题解 分为三个部分,题意-题解-代码,部分题目有扩展,并对知识点进行总结

与恶龙缠斗良久终成恶龙 979

Codefoces Educational Codeforces Round 92 (Rated for Div. 2)

A 思路:两个不同数最小公倍数的最小情况应该是其中较小值的二倍。 #include<iostream> using namespace std; int main() { int t; cin>>t; while(t--) { int a,b; cin>>a>>b; if(b >= 2 * a) cout<<a<<' '<<2*a<<endl; else puts("-1

WELCOME!!! 211

Educational Codeforces Round 143 (Rated for Div. 2) 解题记录

给定两个包含字符B和R的字符串,可以对它们进行一种操作:将一个字符串的末尾字符移动到另一个字符串的末尾,这种操作可进行若干次。另外,你有一个特殊的卷轴,上面有 "爆炸 "法术,你。个,要使权重之和最大,则不可能会有红红红或者蓝蓝蓝的环。每个环最多贡献两条边的权重,此时环染色为蓝蓝红或者红红蓝,且要使图正好有。位客人需要进行区间加的操作,于是使用差分数组记录完整品茶的客人,第。点的区间,使用差分数组进行区间加统计,最后遍历判断是否。种,对于每一个环,需要选择最大的两条边,若三条边的权重。

arcsin_90的博客 810

Educational Codeforces Round 92 (Rated for Div. 2) A~C

原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处。 最近写学习了一下网络爬虫,但昨天晚上的CF让人感觉实力明显退步,又滚回来刷题了QAQ... 比赛链接:Here 1389A. LCM Problem 给定区间 \([l,r]\),求两个不同的数字 \(x,y\) ,使得\(l≤x<y≤r,l≤LCM(x,y)≤r\) 。 思路 这道...

橘嘉禾 118

Educational Codeforces Round 71 (Rated for Div. 2)

回归之战第二场,选择了一场educational,由于老师的拖堂,直接在教室里开一场cf也算是独特的体验了 A. There Are Two Types Of Burgers 思路:制作汉堡分配题。不同的汉堡公用相同的馍,那么当然是将馍先提供给高价值的汉堡,模拟一下即可 #include <bits/stdc++.h> using namespace std; int ma...

Owen_Q的博客 259

Educational Codeforces Round 92 (Rated for Div. 2)【差!!!!!】

A. LCM Problem 思路:自己从那里乱试!都错了,太傻了。虽然A了,但多少都有点狼狈 直接找范围内有没有2*l,有就输出l和2 * l;否则输出-1 B. Array Walk 题意:就是一排数字,你总共可以行走K步,每走到一个地方可以获得那个a[i],其中你可以向左走z次并且 不能连续走两次左,你可以获得最大的S, 思路:当时自己想的就是在前k+1个元素中找到最大值然后在最大值的两边蹦来蹦去,但后来证实是错误的想法。、 思路:算两两相邻的和,算前n项的和。然后你在k+1开始向左走,写个for循

weixin_45988242的博客 177

Educational Codeforces Round 92 (Rated for Div. 2) (A-E)

题目:A. LCM Problem 题意:给定l和r,找到一对x,y,LCM(x,y)属于[l,r]。 设gcd,最小的x为l,可知最优的y为2*l。 #include<cmath> #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cstdlib> #include<istream> #include<vec

weixin_43958964的博客 148
上一篇: Codeforces Round #659 (Div. 2)A-D题解
下一篇: Codeforces Round #660 (Div. 2)A-D题解
StandNotAlone
博客等级 码龄7年 338粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值