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

2025牛客寒假算法基础集训营2

H 一起画很大的圆!

        看起来像是一道计算几何的题,实际上通过分析和猜想,是有O1复杂度的结论的。具体证明略,结论是三点越接近共线,得出的半径越大。

        

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
typedef long long ll;
typedef pair<int, int> PII;
const int N = 1e6+7;
const int mod = 998244353;
int n, m, k;
// int a[N];void sovle()
{int a,b,c,d;cin>>a>>b>>c>>d;if(b-a>d-c){cout<<a<<' '<<d<<endl;cout<<a+1<<' '<<d<<endl;cout<<b<<" "<<d-1<<endl;}else{cout<<b<<' '<<d<<endl;cout<<b<<' '<<d-1<<endl;cout<<b-1<<' '<<c<<endl;}
}signed main()
{ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int ING = 1;cin>>ING;while (ING--){sovle();}return 0;
}

C 字符串外串

        首先我们找k的下界,通过D题我们可以知道,k与两个相同字母之间的间隔距离有关,那么想要最小化相隔距离,我们就要尽量地填充不一样的字母,但是每26个字母之后必定会出现相同的字母,那么不难推出来下界就是max(0,n-26),上界很容易知道是n-1。

        想要构造出特定可爱值的字符串,就类似与构造出一个特殊的回文串。我的代码太屎了,移步官方题解吧。。。。原本我是想着b到z循环m-1次,然后放两个aa,构造出m可爱值的前缀串,后面再接n-m-1个不同的字符就好了。后面发现n-m-1可能会大于m-1导致可爱值变大。于是我发现了n-m>m时构造会不一样,这种情况的具体构造可以变成回文串,前n-m个和后n-m个对称,中间n-2m个相等的就好了。实现起来乱七八糟额

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
typedef long long ll;
typedef pair<int, int> PII;
const int N = 1e6+7;
const int mod = 998244353;
int n, m, k;
// int a[N];void sovle()
{// string x="abcdefghijklmnopqrstuvwxzzzzxwvutsrqponmlkjihgfedcba";cout<<x.size()<<endl;cin>>n>>m;if(n==m||n-26>m){cout<<"NO"<<endl;return;}cout<<"YES"<<endl;string s;if(n-m>m){char ch='b';for(int i=0;i<m-1;i++) s.push_back(ch),ch++;s.push_back('a');for(int i=m;i<n-m;i++) s.push_back(ch),ch++;if(n>1&&m!=0) s.push_back('a');ch='b'+m-2;for(int i=n-m+1;i<n;i++) s.push_back(ch),ch--;// if(n>1&&m!=0) s.push_back('a');cout<<s<<endl;return;}char ch='a';for(int i=0;i<n-m-1;i++) s.push_back(ch),ch++;for(int i=n-m-1;i<=m;i++) s.push_back('z');ch='a'+n-m-2;for(int i=m+1;i<n;i++) s.push_back(ch),ch--;cout<<s<<endl;
}signed main()
{ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int ING = 1;cin>>ING;while (ING--){sovle();}return 0;
}

http://www.lryc.cn/news/526797.html

相关文章:

  • 落地 ORB角点检测与sift检测
  • 16 分布式session和无状态的会话
  • SpringBoot整合Swagger UI 用于提供接口可视化界面
  • 如何实现滑动开关功能
  • 数仓的数据加工过程-ETL
  • 自动驾驶中的多传感器时间同步
  • CYT3BB_4BB:Clock system
  • C# OpenCV机器视觉:利用CNN实现快速模板匹配
  • 消息队列篇--通信协议扩展篇--二进制编码(ASCII,UTF-8,UTF-16,Unicode等)
  • Direct Preference Optimization (DPO): 一种无需强化学习的语言模型偏好优化方法
  • 跟我学C++中级篇——容器的连接
  • java求职学习day15
  • 【脚本】如何禁用谷歌浏览器自动更新
  • 【Linux】华为服务器使用U盘安装统信操作系统
  • WPF3-在xaml中引用其他程序集的名称空间
  • Python 在Word中添加、或删除超链接
  • 基于 WPF 平台使用纯 C# 实现动态处理 json 字符串
  • 「全网最细 + 实战源码案例」设计模式——单例设计模式
  • 第01章 19 通过点数据逐级构建球体体数据的综合性小例子
  • CVE-2024-23897-Jenkins任意文件读取漏洞复现
  • 前端react后端java实现提交antd form表单成功即导出压缩包
  • 基于ESP32的桌面小屏幕实战[6]:环境搭建和软件基础
  • 接口(完)
  • 数据结构——实验七·排序
  • JVM堆空间
  • 【详细】SSH公私钥认证与渗透测试攻击场景
  • 常见的多媒体框架(FFmpeg GStreamer DirectShow AVFoundation OpenMax)
  • C++异步future
  • Oracle 12c 中的 CDB和PDB的启动和关闭
  • Vue组件开发-使用 html2canvas 和 jspdf 库实现PDF文件导出 设置页面大小及方向