当前位置: 首页 > news >正文

Codeforces Round 1048 (Div. 2)与Codeforces Round 1049 (Div. 2)补题

文章目录

  • 一、Codeforces Round 1048 (Div. 2)
    • A. Maple and Multiplication
    • B. Cake Collection
    • C. Cake Assignment
  • 二、Codeforces Round 1049 (Div. 2)
    • A. Shift Sort
    • B. Another Divisibility Problem
  • 总结


一、Codeforces Round 1048 (Div. 2)

A. Maple and Multiplication

在这里插入图片描述
这题题意很明显,就是求最小操作数得到a=b,其实只需要判断两个数是否存在倍数关系

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define pii pair<int,int>
#define fi first
#define se second
#define int long long
#define endl '\n'
#define lowbit(x) (x&(-x))
signed main()
{int t;cin>>t;while(t--){int a,b;cin>>a>>b;if(a==b)cout<<"0"<<endl;//相等不需要变化else{if(a%b==0||b%a==0)//存在倍数关系cout<<"1"<<endl;elsecout<<"2"<<endl;//不存在就将两个数转化为最小公倍数,只需2步}}return 0;} 

B. Cake Collection

在这里插入图片描述
在这里插入图片描述
这题就是通过规定次数求最大蛋糕数

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define pii pair<int,int>
#define fi first
#define se second
#define int long long
#define endl '\n'
#define lowbit(x) (x&(-x))
const int N=1e5+6;
int a[N];
signed main()
{int t;cin>>t;while(t--){int n,m;cin>>n>>m;for(int i=1;i<=n;i++) {cin>>a[i];} sort(a+1,a+n+1);//排序方便求最大int sum=0;if(n>m)//由于操作次数小于烤箱的数量,所以只需要从小到大依次拿就行了,因为烤箱内蛋糕数量会一直增加,所以为了求最大让最大的数走最多次,剩下的数一样,这样才能得到最大蛋糕数{int x=1;for(int i=n-m+1;i<=n;i++){sum+=x*a[i];x++;}cout<<sum<<endl;}else//操作次数大于烤箱的数量,但是也要保证让最大的数走最多次,所以多的几次一直取最小的那个数,让后面大的数更大,这样才能得到最大蛋糕数{if(n==1)cout<<m*a[1]<<endl;else{int sum=(m-n+1)*a[1];for(int i=n;i>=2;i--){sum+=m*a[i];m--;}cout<<sum<<endl;}}}return 0;
}

C. Cake Assignment

在这里插入图片描述
在这里插入图片描述
这到题就是通过1和2两个操作,求最小操作数得到目标值
这道题可以反着操作,从目标值到给定值,其中我们可以发现如果a的值小于总数/2的话,那么其肯定是经过1操作(a/2)得到,反之经过操作2(a+b/2)得到

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define pii pair<int,int>
#define fi first
#define se second
#define int long long
#define endl '\n'
#define lowbit(x) (x&(-x))
signed main()
{int t;cin>>t;while(t--){int k,x;cin>>k>>x;int y=pow(2,k);int z=y*2;int a=x;int b=z-x;int sum=0;if(x==y){cout<<0<<endl;cout<<endl;}else{vector<int>ve;while(a!=y&&b!=y){if(a<y){b-=a;a*=2;sum++;ve.push_back(1);}else{a-=b;b*=2;sum++;ve.push_back(2);}}cout<<sum<<endl;for(int i=ve.size()-1;i>=0;i--)cout<<ve[i]<<" ";cout<<endl;}}return 0;} 

二、Codeforces Round 1049 (Div. 2)

A. Shift Sort

在这里插入图片描述
在这里插入图片描述
这题注重的不是怎么移而是移动后的位置,由题知所有的1都在0后面所以只需要关注排序后1的位置是有几个0,有几个0就说明要走几步

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define pii pair<int,int>
#define fi first
#define se second
#define int long long
#define endl '\n'
#define lowbit(x) (x&(-x))
int a[106];
signed main()
{int t;cin>>t;while(t--){int n;cin>>n;string s;cin>>s;int sum=0;for(int i=0;i<n;i++){a[i+1]=s[i]-'0';if(a[i+1]==1)sum++;}int sum1=0;for(int i=n-sum+1;i<=n;i++){if(a[i]==0)sum1++;}cout<<sum1<<endl;}return 0;} 

B. Another Divisibility Problem

在这里插入图片描述
这题怎么说呢,没有想到
由题可推 n=len(y)
(10^n) x+y能够整除x+y
只要是10的n次方,其除以3肯定都是1
所以令y=2*x
(10^n) x+2x|x+2x
10^n+2|3,此时对于任意的n都存在整除
所以y=2x就行


总结

有些题的方法很巧妙,想不出来,还是要多学习学习


文章转载自:

http://fQ4I2oHt.rjtmg.cn
http://ayAPxofj.rjtmg.cn
http://tEsGYdUF.rjtmg.cn
http://XSosqff0.rjtmg.cn
http://yuQIO376.rjtmg.cn
http://bOPaCarO.rjtmg.cn
http://RbJrlC7e.rjtmg.cn
http://NKw9QjXX.rjtmg.cn
http://CpOWZZ6Z.rjtmg.cn
http://zJ0kT2Rs.rjtmg.cn
http://h1unuqxy.rjtmg.cn
http://GAhXDkEJ.rjtmg.cn
http://xnxULSyI.rjtmg.cn
http://kgcbDjY7.rjtmg.cn
http://aBr1Q06y.rjtmg.cn
http://TRCO5foO.rjtmg.cn
http://8heJEWuu.rjtmg.cn
http://ko4GHy45.rjtmg.cn
http://nzDpn0g7.rjtmg.cn
http://F4AYqoEJ.rjtmg.cn
http://1oBsTFAu.rjtmg.cn
http://wvUXVX39.rjtmg.cn
http://zbZl88hA.rjtmg.cn
http://3Yz7AE1d.rjtmg.cn
http://tX9sOEZx.rjtmg.cn
http://4BLqFQLu.rjtmg.cn
http://kDArPRvy.rjtmg.cn
http://GcgBt8Hc.rjtmg.cn
http://WdeDJNPn.rjtmg.cn
http://iOzhk5Pm.rjtmg.cn
http://www.dtcms.com/a/380858.html

相关文章:

  • 数据集基准任务是否需要类别均衡
  • 住宅IP 使用注意事项
  • 【JavaEE初阶】-- JVM
  • AR智能眼镜:设备检修的“数字眼睛”
  • Ubuntu Server 22.04.5系统安装教程
  • Python 循环导入问题
  • Redis延时双删详解
  • 关于商品数据采集的方式和注意事项
  • linux C 语言开发 (七) 文件 IO 和标准 IO
  • Java Servlet 完全解析:构建高效 Web 应用的关键技术
  • 【GIS】Cesium:快速加载地图
  • 【硬件-笔试面试题-92】硬件/电子工程师,笔试面试题(知识点:米勒效应,米勒平台)
  • 定点巡检、实时巡检详解和两者的区别对比
  • AI 编程工具选型速览(2025-09 版)
  • 2025年渗透测试面试题总结-66(题目+回答)
  • DOTA-Cys-Tyr-Leu-Ala-Ser-Arg-Val-His-Cys(一对二硫键)
  • ARPO: End-to-End Policy Optimization for GUI Agents with Experience Replay
  • 数模电2,9.12
  • 51c大模型~合集181
  • 【硬件-笔试面试题-89】硬件/电子工程师,笔试面试题(知识点:线性稳压电源LDO的效率计算)
  • Docker基础篇03:Docker常用命令
  • 【数据结构与算法Trip第3站】双指针
  • html实现右上角有个图标,鼠标移动到该位置出现手型,点击会弹出登录窗口。
  • mqtt学习笔记
  • C# DataGridView表头自定义设置全攻略
  • 《深入理解Java虚拟机》第三章读书笔记:垃圾回收机制与内存管理
  • 二叉树的最大深度
  • MySQL数据库-02(SQL语言基础)
  • Java POI实现对docx文件搜索指定文本进行批注/评论
  • Hugging Face NLP课程学习记录 - 3. 微调一个预训练模型