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

Codeforces Round 181 (Rated for Div. 2)

A. Difficult Contest

题目传送门:Problem - A - Codeforces或者CF2125A Difficult Contest - 洛谷

思路分析:

这道题目当时写的时候就大意的认为只要让字符串不是“FFT”或者“NTT”就行,我就直接输出了随机的一串字符串,其实不是这样的,仔细读题目,是要输出排列后没有难度的字符串,那就是要想办法让不让‘F’在‘T’之前,和不让‘N’在‘T’前面,这样操作后就不会再有难度了,核心思路是通过 sort函数先对字符串进行默认的升序排序,再通过 reverse函数将结果反转,从而得到降序排列的字符串,最终直接输出结果。

实现代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define pii pair<int,int>
#define fi first
#define se secondvoid slove() {string s;cin >> s;sort(s.begin(), s.end());reverse(s.begin(), s.end());cout << s << endl;
}
signed main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int _ = 1;cin >> _;while (_--)slove();return 0;
}

B. Left and Down

题目传送门:Problem - B - Codeforces或者CF2125B Left and Down - 洛谷

思路分析:

这道题目要求我们计算将机器人从初始位置(a,b)移动到原点(0,0)的最小成本。解题的关键在于利用最大公约数(gcd)来简化问题:首先计算a和b的gcd得到t,然后将坐标简化为(a/t,b/t)。如果简化后的两个坐标值都小于等于k,说明可以通过一个成本为1的操作直接到达原点。

例如::a=12,b=18,k=5,

  1. ​计算gcd​​:

    • gcd(12,18)=6

    • 简化坐标:a'=12/6=2,b'=18/6=3

  2. ​判断与k的关系​​:

    • a'=2 ≤5(满足)

    • b'=3 ≤5(满足)

    • 此时输出1(因为可以用一个操作完成)

否则需要至少两个成本为1的操作(总成本为2),因为无法在单次k的限制内完成移动。

例如:

a=30,b=42,k=5

  1. ​计算gcd​​:

    • gcd(30,42)=6

    • 简化坐标:a'=30/6=5,b'=42/6=7

  2. ​判断与k的关系​​:

    • a'=5 ≤5(满足)

    • b'=7 >5(不满足)

    • 此时输出2(因为需要至少两个操作,有步数限制,可以先走到(0,2),再走到(0,0))

实现代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define pii pair<int,int>
#define fi first
#define se second
const int N=101;void slove(){
int a,b,k;
cin>>a>>b>>k;int t=__gcd(a,b);a=a/t;b=b/t;if(a<=k&&b<=k)cout<<"1"<<endl;elsecout<<"2"<<endl;
}
signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int _=1;cin>>_;while(_--)slove();return 0;
}

C. Count Good Numbers

题目传送门:CF2125C Count Good Numbers - 洛谷或者CF2125C Count Good Numbers - 洛谷

思路分析:

这道题目要求计算区间[l, r]内不能被2、3、5、7整除的数的个数。采用容斥原理,通过系统性地加减不同组合的倍数数量来避免重复计算。具体实现是:先计算区间总数,减去所有单个质数的倍数,再加回两两质数的公倍数,接着减去三个质数的公倍数,最后加回四个质数的公倍数。这种方法通过层次化的加减操作精确统计了不满足条件的数的数量,最终用总数减去这个值得出结果。代码中ff函数高效计算区间内能被某数整除的数的个数。

实现代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define pii pair<int,int>
#define fi first
#define se second
const int N=101;
// 计算区间 [l, r] 内能被 x 整除的数的个数
int ff(int l,int r,int x)
{return r/x-(l-1)/x;
}
void slove(){
int t,l,r;
cin>>t;
while(t--)
{
cin>>l>>r;// 容斥原理计算不能被 2、3、5、7 整除的数的个数cout << (r - l + 1)          // 区间总数- ff(l, r, 2)         // 减去能被 2 整除的数- ff(l, r, 3)         // 减去能被 3 整除的数- ff(l, r, 5)         // 减去能被 5 整除的数- ff(l, r, 7)         // 减去能被 7 整除的数+ ff(l, r, 6)         // 加回能被 2 和 3 同时整除的数(即 6 的倍数)+ ff(l, r, 10)        // 加回能被 2 和 5 同时整除的数(即 10 的倍数)+ ff(l, r, 14)        // 加回能被 2 和 7 同时整除的数(即 14 的倍数)+ ff(l, r, 15)        // 加回能被 3 和 5 同时整除的数(即 15 的倍数)+ ff(l, r, 21)        // 加回能被 3 和 7 同时整除的数(即 21 的倍数)+ ff(l, r, 35)        // 加回能被 5 和 7 同时整除的数(即 35 的倍数)- ff(l, r, 30)        // 减去能被 2、3、5 同时整除的数(即 30 的倍数)- ff(l, r, 42)        // 减去能被 2、3、7 同时整除的数(即 42 的倍数)- ff(l, r, 70)        // 减去能被 2、5、7 同时整除的数(即 70 的倍数)- ff(l, r, 105)       // 减去能被 3、5、7 同时整除的数(即 105 的倍数)+ ff(l, r, 210)       // 加回能被 2、3、5、7 同时整除的数(即 210 的倍数)<< endl;
}
}
signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int _=1;//cin>>_;while(_--)slove();return 0;
}

http://www.dtcms.com/a/300109.html

相关文章:

  • 哈尔滨←→南昌的铁路要道
  • 计算公式放配置
  • 【linux】keepalived
  • ART某板卡的软件位置
  • 每日一道算法题(九)
  • 【C/C++】Undefined reference: memset_s
  • 【seismic中的颜色】
  • ETF历史高频逐笔分钟数据解析
  • FastAPI入门:demo、路径参数、查询参数
  • Linux进程替换
  • Dynamic Model in RL
  • 渲染篇(二):解密Diff算法:如何用“最少的操作”更新UI
  • 【数据结构】二叉树初阶详解(二):实现逻辑与代码拆解(超详版)
  • 聚类-一种无监督分类算法
  • 中文语音识别与偏误检测系统开发
  • Redis的下载和安装(Linux)
  • 亚马逊全球物流(AGL)与Amazon SEND双重升级:重塑跨境电商物流新生态​
  • FastAPI入门:安装、Pydantic、并发和并行
  • Python应用:三局两胜制石头剪刀布游戏
  • VS Code + LaTeX 绘制电气图完全指南(含 PlantUML 样式参考)
  • 典型的 Vue 3 项目目录结构详解
  • Android中ViewStub和View有什么区别?
  • 过油防溅:3 步搞定 油星乱蹦
  • 具身视觉语言导航算法学习笔记
  • C++20 协程
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-27,(知识点:信号完整性,信号反射,串扰,时延,抖动,衰减)
  • 物联网统一网关:多协议转换与数据处理架构设计
  • useCallback/useMemo
  • Item11:在operator=中处理自我赋值
  • [极客大挑战 2019]FinalSQL--布尔盲注