Codeforces Round #665 (Div. 2)A-D题解

Codeforces Round #665 (Div. 2) 题解( 小学奥数专场 ) 目录A、Distance and Axis(简单高中数学应用题)B、Ternary Sequence(分类讨论)C、Mere Array(GCD的性质)D、Maximum Distributed Tree(树上贪心)E、Divide Square(计算几何)F、Reverse and Swap(线段树、实现 区间翻转, 区间交换) A、Distance and Axis(简单高中数学应用题) 若k>nk>nk>n,那么直接将 AAA 点移动到 kkk 位置是最优的。 否则我们设 BB 阅读详情

** Codeforces Round #665 (Div. 2)A-D题解**
//写于rating值2075/2184
//下午刚补的题,28号之前都要练科三,这段时间的比赛应该都要鸽了

比赛链接:https://codeforces.com/contest/1401
A题
简单思维

题意为在x轴上有一个点A位于(n,0),现在给定一个值k,你需要找到一个点B位于(m,0)满足m<=n,使得原点(0,0)到B的距离与A到B的距离的差的绝对值等于k。(n,m,k均为整数)
如果无法找到这样的点,我们可以对点A进行任意次操作,每次操作我们可以使n的值增大或减小1。
现在需要你输出最小的操作次数,使得我们可以找到满足要求的点B。

首先当n=k的情况下,我们可以选择B点为(0,0),这样的情况下OB长度为0,AB长度为n=k,两段距离差值为k满足要求,需要操作次数为0。

如果n<k的话,由于OB和AB两段长度加起来等于n,也就是代表两段长度的差值最大也无法等于k。我们需要不多进行增加n的操作,向着n=k的情况去靠近。所需操作次数为k-n次。

如果n>k的话,此时并不是说必定不需要操作的。还需考虑n和k的奇偶性。假设OB长度为L1,AB长度为L2,且L1>L2,由于n,m,k都必须是整数,因此L1和L2的长度也为整数。
已知L1+L2=n,L1-L2=k,得L1=L2+k
得2×\times× L2=n-k,也就是说n-k必须是偶数。
因此当n-k不为整数时,我们还需要对n进行一次+1的操作。

#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;
        cin>>n>>k;
        if(k<n) cout<<(n-k)%2<<endl;
        else cout<<k-n<<endl;
    }
}

B题
分类,贪心,简单思维

现在有两个数列只包含0,1,2,两个数列长度相等。
第一个数列有a1个0,b1个1,c1个2。
第二个数列有a2个0,b2个1,c2个2。

现在你需要对这两个数列的数字两两配对,
设第一个数列中选出的数字为x,第二个数列中选出的数字为y
当x=y时,累加0到答案上
当x>y时,累加x×\times× y到答案上
当x<y时,累加-x×\times× y到答案上

现在需要你输出最终答案可能的最大值。

这道题每个数列中只有0,1,2三种数字,且存在0,最后的计算又是乘法。我们直接讨论下9种情况很容易发现,
只有当x=2,y=1的时候,会对最终答案有正增加,
只有当x=1,y=2的时候,会对最终答案有负增加,
其他情况对答案的增加都是0。

而正增加和负增加的两种选择是不冲突的,我们直接贪心选取最多对数的正增加和最少对数的负增加即可。

我们能增加的最多对数的x=2,y=1,为第一个数列中2的个数和第二个数列中1的个数的最小值。
在这之后我们希望x=1,y=2的对数尽可能少,那么我们让第二个数列中的2尽可能先与第二个数列中的0和2配对,剩下的只能与1配对,这种情况下即为最少配对数。

#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 a1,b1,c1,a2,b2,c2;
        cin>>a1>>b1>>c1>>a2>>b2>>c2;
        ll ans=0;
        ll temp=min(c1,b2);//考虑我们增加的2*1的对数最多有多少
        ans+=temp*2;c1-=temp;//累加到答案上,并且减去使用掉的第一个数列中的2的个数
        temp=max(0ll,c2-c1-a1);//考虑减少的1*2的对数最少有多少
        //我们尽可能让第二个数列的2与第一个数列的2或者0配对,剩下的无可奈何只能与1配对
        //这里要和0取个max,因为c2-c1-a1可能为负数。
        ans-=2*temp;
        cout<<ans<<endl;
    }
}

C题
排序,整体思维

给定一个长度为n的数列,其中最小的数字为Min,你每次可以选择这个数列中两个下标不同的数字x和y满足gcd(x,y)=Min,交换这两个数字的位置。
现在询问你是否可以通过任意次上述操作后,使得数列变为从小到大排序的数列。

首先要认识到一点,原数列中,数值无法整除Min的,代表其因子中根本不含有Min,那么它与其他数字的gcd必定不为Min,因此它的位置是不可改变的。

那么原数列中 ,排除掉无法整数Min的数,剩下的那些可以整除Min的数字,我们又可以通过题意给定的操作把它们排序到什么程度呢?
数列中必然有一个数字是等于Min的,Min与任何一个可以整除它的数字的gcd必然等于Min,也就是说Min这个数字是可以与任意其他剩下的数字交换位置的。
一旦有一个数字满足了上述的可以与任意其他位置的数字交换位置,我们就可以通过这个数字进行类似插入排序的过程,把整个数列都排序完毕。

也就是说,数值无法整除Min的数字们,我们是无法改变它们的位置的,而可以整除Min的数字们,我们是可以将他们按照从小到大排序好的。

由此我们直接对原数列排序,注意数值相等的时候要按照下标从小到大排序,因为无法整除Min的数字可能数值相等,而他们的位置是不可改变的,也就是原数列中的先后顺序应当被保留。因此我们不可以直接使用不稳定的快速排序。检测一下无法整除Min的数字,它们排序后所在的位置下标是否都与原位置下标相同,如果不同则代表无法构造。

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

struct Node
{
    ll data,tar;
};

ll n,Min;//Min为数列中的最小值
vector<Node>node;

bool cmp(Node a,Node b)//数值为第一排序关键字,数值相等时按照原下标从小到大排序
//即一个稳定的快速排序
{
    if(a.data!=b.data) return a.data<b.data;
    else return a.tar<b.tar;
}

int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        cin>>n;
        node.resize(n);
        Min=llINF;
        for(ll i=0;i<n;i++)
        {
            cin>>node[i].data;
            node[i].tar=i;
            Min=min(node[i].data,Min);
        }
        sort(node.begin(),node.end(),cmp);
        bool flag=1;
        for(ll i=0;i<n;i++)
        {
            if(node[i].data%Min&&i!=node[i].tar) flag=0;
            //如果当前的数值无法整除Min那代表它是无法被交换位置的
            //如果在稳定排序后的位置与其原位置不同,那么代表我们是无法得到稳定排序后的数列的
        }
        if(flag) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
        node.clear();
    }
}

D题
贪心,简单图结论

给定一棵树有n个结点,n-1条边。现在需要你对每条边给定一个数值,这n-1条边对应的数值相乘需要等于给定的数字k。由于k可能会非常庞大,题目输入数据为k分解质因子后的结果。

现在需要使得累加所有任意两点间的简单路径的边的数值和,这个最后的结果要尽可能大,且对每条边构造数值的时候,1的数量要尽可能的少。

我们首先需要想到的,对于这棵树上的每条边,他在最后的结果中被累加了多少次呢。
以题目的第一个样例的图为例:
在这里插入图片描述
在上图中,中间的这条边,左侧有两个点1和2,右侧有两个点3和4。这条边总共被计算了2 ×\times× 2=4次。也就是左侧的节点个数乘以右侧的节点个数,因为左侧的点到右侧的点的简单路径必然要经过当前这条边。而左侧的点走到左侧点或是右侧的点走到右侧的点的简单路径,是不需要经过当前边的。

我们可以通过一遍从根节点出发的dfs计算出每个节点的子节点数,并由此计算出每条边在最后的结果中被计算了多少次。

之后是对这n-1条边如何构造数值的过程了。
题目要求这n-1条边的数值乘积要等于k,那么必然的他们分解质因数的结果要与k相同。
当k分解质因数得到的质因子个数m<=n-1的时候,我们直接采用贪心的过程,按照质因子个数大的与边在最后结果中出现次数的进行两两配对即可。m<n-1的不足部分用1去补,1乘任任何值都等于原值。
当m>n-1的时候。同样采用贪心的策略,我们让最大的m-(n-1)+1个质因子累乘起来,放在出现次数最大的边上。(这个贪心的正确性可以用反证法来证明)。之后采取与上种情况同样的贪心配对过程即可。

#include<bits/stdc++.h>
#define ll long long
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
const ll mod=1e9+7;

ll n,m,start;
vector<vector<ll>>to(1e5+7);//存边
vector<ll>sun;//sun[i]记录结点i包括自己有几个子节点,用于计算边被计算几次
deque<ll>k;//k分解质因子后得到的数列
deque<ll>edgenum;//存储每条边各自会被计算多少次累加到结果上,排序后用于贪心过程

void dfs(ll now,ll pre)//now为当前所在节点,pre为上一个节点
{
    for(ll i=0;i<to[now].size();i++)
    {
        if(to[now][i]!=pre)//不往回走
        {
            dfs(to[now][i],now);
            sun[now]+=sun[to[now][i]];//累加子树的子节点数当前节点上
        }
    }
    sun[now]++;//自身也算做一个子节点
    if(now!=start) edgenum.push_back((n-sun[now])*sun[now]);
    //对于now到pre的这条边来说,sun[now]为这条边“下面”的子节点数,那么n-sun[now]即为这条边"上面"的子节点数
}

int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        cin>>n;
        for(ll i=1;i<=n;i++)
            to[i].clear();
        for(ll i=1;i<n;i++)
        {
            ll u,v;
            cin>>u>>v;
            to[u].push_back(v);
            to[v].push_back(u);
        }
        cin>>m;
        k.resize(m);
        for(ll i=0;i<m;i++) cin>>k[i];
        sort(k.begin(),k.end());//排序用于贪心
        for(ll i=1;i<=n;i++)//找一个出度为0的点,作为树的根进行dfs
            if(to[i].size()==1) start=i;
        sun.clear();sun.resize(n+1,0);
        edgenum.clear();
        dfs(start,-1);//dfs计算每条边会被计算几次到答案上,也就是每条边的权值
        sort(edgenum.begin(),edgenum.end());//排序用于贪心
        while(m>edgenum.size())//m为k数组的大小,如果m的个数大于边的个数,我们要贪心使得权值最大的边对应最大的乘积
        //不断累乘最大的值给第二大的数,缩小数组大小即可
        {
            k[m-2]=(k[m-2]*k[m-1]%mod);
            k.pop_back();
            m--;
        }
        while(m<edgenum.size())//再考虑m个数小于边的个数时,我们需要在剩下的边补1
        {
            k.push_front(1);
            m++;
        }
        ll ans=0;
        for(ll i=0;i<m;i++)//贪心过程,小的值配权值小的边,不断累加到答案上
        {
            ans=(ans+edgenum[i]%mod*k[i]%mod)%mod;
        }
        cout<<ans<<endl;
    }
}
Hypermesh到Abaqus CEL网格转换全攻略:解决欧拉体导入难题 本文详细解析了Hypermesh到Abaqus CEL网格转换的全流程,重点解决欧拉体导入难题。通过单元类型转换、INP文件编辑和多组件合并技术,实现流固耦合仿真的高效前处理。文章包含实用脚本和工程案例,帮助工程师突破ABAQUS CEL分析中的网格转换瓶颈。 阅读详情

相关推荐

用LTspice仿真Buck电路输出电容:从参数计算到波形优化的全流程演示

本文详细介绍了使用LTspice仿真Buck电路输出电容的全流程,从理论计算到波形优化。通过解析关键参数如纹波电压、瞬态响应和ESR,结合工程计算方法和LTspice仿真技巧,帮助工程师优化Buck电路设计,解决输出纹波过大和瞬态响应不佳的问题。

night的博客 851

Codeforces Round #665 (Div. 2) A~D

A: 特判情况,当n是<=k 的时候,都可以把让B为0点,A为n点。 否则: 当k时奇数的时候,AB,OB的距离差会构成全为奇数的长度。 反之为偶数。 #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #include<iostream> #include<algorithm> #define int long long #define sc scanf #define pf printf using

qq_45604735的博客 259

01|无代码开发 | 如何使用Zion实现导航网站制作

以上就是我制作导航网站的心得,分享给大家,作为一个小白想要独立搭建一个网站还是比较困难的,而在Zion不仅可以用可视化的方法进行搭建,甚至还可以一键发布,不用考虑服务器域名啥的问题,真是太方便了。

2301_76262110的博客 1390

Codeforces Round #665 (Div. 2) -- D. Maximum Distributed Tree

前置知识 a. 树上的任意一条边,在计算所有点之间的距离之和时,计算次数为去掉这个边之后断开的两部分树的大小的积 b. 排序不等式 题意 给你一棵树,分配边权,使所有点之间的距离之和最大 思路 先算出所有边在计算时计算的次数,按排序不等式的规律和边权作积即可 难点在于,讨论 mmm 和 n−1n-1n−1 的大小关系 m<=n−1m<=n-1m<=n−1时比较好考虑,不够的用 111 填充 m>n−1m>n-1m>n−1 时,可以猜想,将前面多出来的部分乘到最

lingdie_yy的博客 268

大疆Livox Mid-70雷达的使用

一、前期准备 (一)、使用Livox Viewer测试雷达 1、设置静态IP sudo ifconfig enx081f7152092a 192.168.1.50 查看IP是否设置成功 lacyexsale@lacyexsale-KLV-WX9:~$ ifconfig enx081f7152092a Link encap:以太网 硬件地址 08:1f:71:52:09:2a inet 地址:192.168.1.50 广播:192.168.1.255 掩码:255.255.25

LacyExsale的博客 1万+

Agent Skills:AI智能体规模化落地的基础设施

摘要:AgentSkills体系已成为AI智能体落地的核心基础设施,解决了能力扩展和行业知识沉淀两大核心难题。该开放标准通过语义优先、渐进式披露等设计原则,实现了工具调用的标准化和可控化,同时支持轻量化知识沉淀。Skill作为最小能力单元,将传统软件功能、行业知识等封装为可被智能体调用的标准化模块,推动了软件产业从"工具时代"向"智能体时代"的范式变革。目前该体系已被主流Agent工具广泛兼容,形成完整生态,未来将持续演进,进一步降低落地门槛,推动AI原生转型。

技术引领业务创新 1158

【题解】AtCoder Grand Contest 016

A:Shrinking 题意:规定一种对字符串的操作:设字符串长度为N,一次操作之后可以得到一个长度为N-1的字符串,新字符串的第i个字符等于旧字符串的第i个字符或第i+1个字符。给定一个长度为n的字符串,问最少进行几次操作可以得到一个只含有一种字符的字符串。 分析:假如我们要将字符串最终变为"aa...a",首先原字符串中必须得有字符a。设原字符串中字符a的位置从小到大依次为x1,x2,..

ZJZ的博客 1084

别再只调包了!深入理解机器学习虚拟筛选中的分子指纹(ECFP/Morgan)

本文深入探讨了ECFP/Morgan分子指纹在机器学习虚拟筛选中的应用与优化策略。通过解析半径参数与比特长度的化学意义,揭示了如何通过参数调优提升模型性能20%以上,特别适用于药物发现领域的高通量筛选。文章还提供了工程实践中的参数优化策略和多指纹融合技术,为开发者提供从理论到实践的全面指导。

weixin_33704234的博客 829

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

Educational Codeforces Round 94 (Rated for Div. 2)A-E题解 //写于rating值2075/2184 //科三考完了,恢复正常训练 //下一场cf会开始正常打 //这一场的E和前段时间刚写过的一道题一模一样… 比赛链接:https://codeforces.com/contest/1400 A题 简单构造 给定一个长度为2n-1的只包含0和1的字符串a,现在需要你构造一个长度为n的字符串b,满足与a当中长度为n的任意连续子串,都至少有一个位置上的数字是相同

StandNotAlone的博客 497

YOLOv8【第九章:模型部署篇·第2节】一文搞懂,模型剪枝与压缩技术!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1524

PINN物理信息网络 | 非线性薛定谔方程的物理信息神经网络

PINN物理信息网络 | 非线性薛定谔方程的物理信息神经网络

算法如诗的博客 1298

树、二叉树

树 在谈二叉树前先谈下树和图的概念 树:不包含回路的连通无向图(树是一种简单的非线性结构) 树有着不包含回路这个特点,所以树就被赋予了很多特性 1、一棵树中任意两个结点有且仅有唯一的一条路径连通 2、一棵树如果有n个结点,那它一定恰好有n-1条边 3、在一棵树中加一条边将会构成一个回路 4、树中有且仅有一个没有前驱的结点称为根结点 在对树进行讨论的时候将树中的每个点称为结点, **根结点:**没有父结点的结点 **叶结点:**没有子结点的结点 **内部结点:**一个结点既不是根结点也不是叶结点 每个结点还

DD728的博客 513

Qt垂直滚动条QVerticalScrollBar详解:从基础到实战的控件开发指南

本文系统解析Qt中QVerticalScrollBar的用法,从基础概念到进阶技巧。主要内容包括:1)基础认知:介绍其继承关系、作用及典型应用场景;2)核心用法:创建方法、关键属性配置和信号槽连接;3)进阶技巧:自定义样式表美化外观,以及与自定义内容区域的联动实现;4)实战注意事项,如避免循环触发和高DPI适配等。文章强调掌握QVerticalScrollBar对提升Qt滚动类功能开发效率的重要性,并建议通过自定义文本编辑器实践巩固知识点。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 757

Codeforces Round #665 (Div. 2) A-D 题解

A. Distance and Axis 题目链接 题目原文 题目大意 在OXOXOX轴上,给出点AAA的坐标x=nx=nx=n,给出一个值kkk,求问能不能在OXOXOX轴上找一个点BBB,使得你∣OA−AB∣=k|OA-AB|=k∣OA−AB∣=k。如果不能找到,你每次可以将AAA点的坐标+1+1+1或−1-1−1,求至少移动点AAA多少次,使得可以找到点BBB (如果以开始就能找到,那么输出 000 )。 解题思路 由题意得OA=nOA=nOA=n,设BBB的坐标为yyy,那么∣AB∣=∣n−y

lemonaaaaa的博客 305

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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

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

Codeforces Round #665 (Div. 2) A - D题题解

成功拼手速提前过了AC两题,估计因为这个原因排名挺高的,B题晚上做的时候没绕出来,wa4发。。。 1401A - Distance and Axis 如果 \(n\) 小 于 \(k\) ,则必须将\(A\)移至坐标\(k\),并将B的坐标设置为0或k。 因此答案是\(k - n\)。 如果 \(n\)不小于 \(k\),则将B的坐标定义为\(m (m×2≤n)\)。 根据问题中的条件,\(...

橘嘉禾 69

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

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

Codeforces Round #665 (Div. 2) C. Mere Array

Codeforces Round #665 (Div. 2) C. Mere Array 题目链接 You are given an array a1,a2,…,an where all ai are integers and greater than 0. In one operation, you can choose two different indices i and j (1≤i,j≤n). If gcd(ai,aj) is equal to the minimum element of the

旺崽的博客 2632

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Codeforces Round #665(Div.2)题解BCD

B.Ternary Sequence 题目传送门 Ternary Sequence 题目大意 有两个由0,1,2组成的数组a和b,分别给你a数组和b数组中0,1,2的个数,其中满足 求C的和的最大值 思路 贪心 1、通过观察我们发现正的贡献只有a(2)*b(1)=2,负的贡献只有a(1)*b(2)= -2,其他的情况则都为0。按照贪心的思想,a(1)*b(2)应该尽可能的少,而a(2)*b(1)尽可能多。 2、于是我们优先用a数组中的0,然后再用a数组中的2,去和b数组中的2匹配,使得贡献为0,最后

稚始稚终的博客 1095

Codeforces Round #665 (Div. 2)

文章目录Codeforces Round #665 (Div. 2)A. Distance and AxisB. Ternary SequenceC. Mere ArrayD. Maximum Distributed Tree参考 Codeforces Round #665 (Div. 2) A. Distance and Axis 题意: 给你一个点a的坐标n,求点b的坐标,使得∣OB−∣AB∣∣=K∣OB−∣AB∣∣=K 题解: 先判断n和k的大小关系。b在OA中每移动一个点改变的大小为2,所以判断n−

m0_49959202的博客 151

[Codeforces Round #665 (Div. 2)]1401

文章目录A - Distance and AxisA -A -A -A - 竞赛首页 Codeforces Round #661 (Div. 3) A - Distance and Axis 题意 给出 xxx 轴上的点 AAA 的横坐标 nnn,问 AAA 至少需要移动多少才能存在点 BBB,使得 abs(∣OB∣−∣BA∣)=kabs(|OB|-|BA|)=kabs(∣OB∣−∣BA∣)=k 分析 如果 k>nk > nk>n,最小的移动应该是 nnn 移动到 kkk 否则.

QAQ! 的博客 266

Codeforces Round #665 (Div. 2) D - Maximum Distributed Tree(dfs记录子节点+贪心)

Codeforces Round #665 (Div. 2) D - Maximum Distributed Tree(dfs记录子节点+贪心) 题目 http://codeforces.com/contest/1401/problem/D 题意 给出一棵树和一个数k,请你给这棵树上的每条边分配一个边权,使得这棵树上的每两个节点之间的路径总和最大,同时边权中1的数量尽可能少,所有边权的乘积等于k。 题解 先记录出每个边被计算出来的次数,siz[i] = son[i]*(n-son[i]) 再给m个质数排序,

zhz的博客 171

Codeforces Round #665 (Div. 2) solution

回橙啦

curry的博客 353

Codeforces Round #665 Div2题解

A.Omkar and Completion 题目描述 要求你找出一个序列a,满足序列a对于任意的x,y,z都满足: ax+ay≠az a_x + a_y ≠ a_z ax​+ay​​=az​ 并且满足ai <= 1000 题解: 一开始我还想打个奇数表啥的… 但是看见元素值要求小于1000就放弃了,因为第1000大的奇数早就爆了… 其实这个题很简单,都是1不就好了QAQ AC代码 #include<iostream> #include<cstdio> #include&lt

weixin_45671402的博客 167

Codeforces Round #665 (Div. 2)题解ABC

A. Distance and Axis 题目传送门 Distance and Axis 题目大意 给你一个点a的坐标n,求点b的坐标,使得∣OB−∣AB∣∣=K|OB-|AB||=K∣OB−∣AB∣∣=K 思路 先判断n和k的大小关系 b在OA中每移动一个点改变的大小为2,所以判断n−kn-kn−k的奇偶性即可 AC Code #include<cstdio> #include<algorithm> #include<iostream> using namespace

Kuricip的博客 1128

Codeforces Round #665 (Div. 2) 题解

A 稍微分类讨论一下即可。 代码如下: #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define maxn 1000010 int T,n,k; int main() { scanf("%d",&T);while(T--) { scanf("%d %d",&n,&k); if(n<k)printf("%d\n",

a_forever_dream的博客 261

Codeforces Round #665 (Div. 2) / contest 1401

目录A Distance and AxisB Ternary SequenceC Mere ArrayD Maximum Distributed TreeE Divide SquareF Reverse and Swap A B C D E F √ √ √ √ √ ○ ( √:做出; ●:尝试未做出; ○:已补题 ) 题目地址:https://codeforces.com/contest/1401 这次的题目不算难吧,F题思路已经有了,赛后一小会儿就写出来了。 A Distanc

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值