2023湖南省赛

news2024/11/19 11:27:19

​​​​​​连接

目录

A:开开心心233

B:Square Game

C:室温超导

F:necklace

J:radius

K:tourist


补题中,会给出大部分代码

A:开开心心233

签到题 ,无论二分还是解方程还是直接for循环枚举都能直接通过啦

signed main()
{
	ios_base::sync_with_stdio(0); cin.tie(0),cout.tie(0);
	int n,m;
	cin>>n>>m;
//	cout<<-3+sqrt(3*3+4*2*(n+m))<<'\n';
	int res1=n-(-3+sqrt(3*3+4*2*(n+m)))/2;
	int res2=n-(-3-sqrt(3*3+4*2*(n+m)))/2;
	if(res1<=n&&res1>=0) cout<<res1;
	else cout<<res2;
}
 

B:Square Game

#define f first
#define s second
const int N=1e6+5;
int f[N];
void init()
{
	for(int i=1;i<N;i++){
		int q=sqrt(i);
		map<int,bool>mp;
		if(q*q==i||q*q+1==i){
			for(int j=0;j<i;j+=q){
				mp[f[j]]=1;
			}
			int cnt=0;
			for(auto w:mp){
				if(w.f==cnt) cnt++;
				else break;
			}
			f[i]=cnt;
		}else{
			f[i]=f[i-1];
		}
	}
}
signed main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	init();
	int n;
	cin>>n;
	int sum=0;
	for(int i=1;i<=n;i++){
		int x;
		cin>>x;
		sum^=f[x];
	}
	if(sum==0){
		cout<<"Second\n";
	}else{
		cout<<"First\n";
	}
}

C:室温超导

#define int long long
#define f first
#define s second
const int N = 500000 + 5;
char str[N];
struct Node
{
	int len, fa;
	int ch[26];
}node[N*4];
int tot = 1, last = 1;
int summ = 0;//不同的子串数
void extend(int c)
{
	int p = last, np = last = ++tot;
	node[np].len = node[p].len + 1;
	for (; p && !node[p].ch[c]; p = node[p].fa) node[p].ch[c] = np;
	if (!p) {
		node[np].fa = 1; summ += node[np].len - node[node[np].fa].len;
	}
	else
	{
		int q = node[p].ch[c];
		if (node[q].len == node[p].len + 1) { node[np].fa = q; summ += node[np].len - node[node[np].fa].len; }
		else {
			int nq = ++tot;
			summ -= node[q].len - node[node[q].fa].len;
			node[nq] = node[q], node[nq].len = node[p].len + 1;
			node[q].fa = node[np].fa = nq;
			summ += node[q].len - node[node[q].fa].len;
			summ += node[np].len - node[node[np].fa].len;
			summ += node[nq].len - node[node[nq].fa].len;
			for (; p && node[p].ch[c] == q; p = node[p].fa) node[p].ch[c] = nq;
		}
	}
}
signed main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	int n, m;
	cin >> n >> m;
	cin >> str + 1;
	string t;
	cin >> t;
	t = ' ' + t;
	vector<int>sum(30);
	int all = 0;
	//int summ = 0;;
	for (int i = 1; i <= n - m + 1; i++) {
		int pre_tot = summ;
		extend(str[i] - 'a');
	//	summ = 0;
	//	for (int j = 2; j <= tot; j++) {
	//		summ += node[j].len - node[node[j].fa].len;
	//	}
		sum[str[i] - 'a'] += (summ - pre_tot);
	}
	all += summ;
	for (int i = n - m + 2; str[i]; i++) {
		int j = i - (n - m);
		int pre_tot = summ;
		extend(str[i] - 'a');
	//	summ = 0;
	//	for (int j = 2; j <= tot; j++) {
	//		summ += node[j].len - node[node[j].fa].len;
	//	}
		sum[str[i] - 'a'] += (summ - pre_tot);
		all += summ;
		all -= sum[t[j - 1] - 'a'];
		if (sum[t[j - 1] - 'a']) all++;
	}
	cout << all;
}

F:necklace

const int inf=0x3f3f3f3f;
int change[410][410];
 
signed main()
{
	ios_base::sync_with_stdio(0); cin.tie(0),cout.tie(0);
	memset(change,0x3f,sizeof change);
	int n,m;
	cin>>n>>m;
	vector<int>s(n),t(n);
	for(int i=0;i<n;i++)
	{
		cin>>s[i];
	}
	for(int i=0;i<n;i++)
	{
		cin>>t[i];
	}
	while(m--)
	{
		int a,b,c;
		cin>>a>>b>>c;
		change[a][b]=min(change[a][b],c);
	}
	for(int k=1;k<=400;k++)
	{
		for(int i=1;i<=400;i++){
			for(int j=1;j<=400;j++){
				change[i][j]=min(change[i][j],change[i][k]+change[k][j]);
			}
		}
	}
	bool ok=0;
	int tot=inf;
	for(int i=0;i<n;i++)
	{
		int sum=0;
		bool flag=1;
		for(int j=0;j<n;j++){
			if(s[j]==t[(i+j)%n]) continue;
			int p=inf;
			p=min(change[s[j]][t[(i+j)%n]],p);
			p=min(change[t[(i+j)%n]][s[j]],p);
			if(p>=inf){
			flag=0;
			break;				
			}
			sum+=p;
		}
		if(flag==0){
//			ok=0;
//			break;
		}else{
			ok=1;
			tot=min(tot,sum);
		}
	}
	if(!ok){
		cout<<-1<<'\n';
	}else{
		cout<<tot<<'\n';
	}
}

J:radius

不会写,借鉴一下链接

 

#define int long long
#define PII pair<int,int>
#define f first
#define s second
const int inf = 0x3f3f3f3f3f3f3f3f, N = 1e5 + 5, mod = 1e9 + 9;
int x[N], y[N], z[N];
int n;
struct node
{
    double pos;
    int val;
}a[2*N];
bool check(double r)
{
    int cnt = 0;
    for (int i = 1; i <= n; i++) {
        double res = r * r - y[i] * y[i] - z[i] * z[i];
        if (res < 0) continue;
        res = sqrt(res);
        a[++cnt] = { x[i] - res,1 };
        a[++cnt] = { x[i] + res,-1 };
    }
    sort(a + 1, a + 1 + cnt, [&](node i, node j) {
        return i.pos < j.pos;
        });
    int sum = 0;
    for (int i = 1; i <= cnt; i++) {
        sum += a[i].val;
        if (sum >= n / 2) {
            return 1;
        }
    }
    cnt = 0;
    for (int i = 1; i <= n; i++) {
        double res = r * r - y[i] * y[i] - x[i] * x[i];
        if (res < 0) continue;
        res = sqrt(res);
        a[++cnt] = { z[i] - res,1 };
        a[++cnt] = { z[i] + res,-1 };
    }
    sort(a + 1, a + 1 + cnt, [&](node i, node j) {
        return i.pos < j.pos;
        });
    sum = 0;
    for (int i = 1; i <= cnt; i++) {
        sum += a[i].val;
        if (sum >= n / 2) {
            return 1;
        }
    }
    cnt = 0;
    for (int i = 1; i <= n; i++) {
        double res = r * r - x[i] * x[i] - z[i] * z[i];
        if (res < 0) continue;
        res = sqrt(res);
        a[++cnt] = { y[i] - res,1 };
        a[++cnt] = { y[i] + res,-1 };
    }
    sort(a + 1, a + 1 + cnt, [&](node i, node j) {
        return i.pos < j.pos;
        });
    sum = 0;
    for (int i = 1; i <= cnt; i++) {
        sum += a[i].val;
        if (sum >= n / 2) {
            return 1;
        }
    }
    return 0;
}
signed main()
{
    ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0);
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> x[i] >> y[i] >> z[i];
    }
    double l = 0, r = 1e6;
    for (int i = 0; i <= 50; i++) {
        double mid = (l + r) / 2;
        if (check(mid)) {
            r = mid;
        }
        else {
            l = mid;
        }
    }
    printf("%.10lf", l);
}

K:tourist

#define int long long
const int K=1<<7,mod=1e9+9;
int path[21][21];
int st[K];
int sz[10];
int siz(int x) {
	int cnt=0;
	while(x) {
		if(x&1) cnt++;
		x>>=1;
	}
	return cnt;
}
int a[21][21];
int f[21];
int n,m,k,d;
void mul(int f[],int a[21][21]) {
	int c[21]= {0};
	for(int j=1; j<=n; j++) {
		for(int k=1; k<=n; k++) {
			c[j]=(c[j]+f[k]*a[k][j])%mod;
		}
	}
	memcpy(f,c,sizeof c);
}
void mulself(int a[21][21]) {
	int c[21][21]= {0};
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++) {
			for(int k=1; k<=n; k++) {
				c[i][j]=(c[i][j]+a[i][k]*a[k][j])%mod;
			}
		}
	}
	memcpy(a,c,sizeof c);
}
signed main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n>>m>>k>>d;
	d--;
	for(int i=0; i<k; i++) {
		int x;
		cin>>x;
		st[(1ll<<i)]=x;
	}
	while(m--) {
		int u,v;
		cin>>u>>v;
		path[u][v]=1;
		path[v][u]=1;
	}
	for(int i=0; i<(1ll<<k); i++) {
		int size=siz(i);
		memcpy(a,path,sizeof path);
		for(int j=0; j<k; j++) {
			if((i>>j)&1) {
				int p=st[(1ll<<j)];
				for(int k=1; k<=n; k++) {
					a[p][k]=0;
					a[k][p]=0;
				}
			}
		}
		for(int ii=1; ii<=n; ii++) {
			f[ii]=1;
		}
		int dd=d;
		for(; dd; dd>>=1) {
			if(dd&1) mul(f,a);
			mulself(a);
		}
		for(int j=1; j<=n; j++) {
			sz[size]+=f[j];
			sz[size]%=mod;
		}
	}
	int sum=0;
	for(int i=0; i<=k; i++) {
		if(i%2==0) {
			sum+=sz[i];
			sum%=mod;
		} else {
			sum=(sum-sz[i]+mod)%mod;
		}
	}
	cout<<sum<<'\n';
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1210571.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计项目选题推荐(免费领源码)PHP+MySQL在线网络教育平台66984

目 录 摘要 1 绪论 1.1 课题背景 1.2意义 1.3HTML介绍 1.4JavaScript 运行模式 1.5css3工作原理 1.6论文结构与章节安排 2 在线网络教育平台分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 3 2.2.2数据修改流程 4 2.2.3数据删除流程 4 2.3 系统功能分析 …

提升代码复用性:探讨Mixin类在面向对象语言中的独特作用和优势

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一、m…

如何在Ubuntu 23.10部署KVM并创建虚拟机?

正文共&#xff1a;1114 字 21 图&#xff0c;预估阅读时间&#xff1a;2 分钟 我们之前对OpenStack醉过一次简单介绍&#xff08;什么是OpenStack&#xff1f;&#xff09;&#xff0c;OpenStack本身是一个云管理平台&#xff0c;它本身并不提供虚拟化功能&#xff0c;而是依赖…

一起学docker系列之二深入理解Docker:基本概念、工作原理与架构

目录 前言1 Docker的基本概念2 Docker的基本组成3 docker工作原理4 docker架构5 Docker详细工作过程结语 前言 在当今的软件开发和部署中&#xff0c;Docker已经成为一种不可或缺的工具。它简化了应用程序的打包、交付和运行&#xff0c;同时提供了强大的隔离性和可移植性。本…

手把手教你实现贪吃蛇

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;实现贪吃蛇 > 毒鸡汤&#xff1a;时间并不可真…

SM5212 是一款完整的采用恒定电流/恒定电压的单节锂电池线性充电器

SM5212 双向防反接功能 1.2A 锂电池线性充电芯片 概述&#xff1a; SM5212 是一款完整的采用恒定电流/恒定电压的单节锂电池线性充电器&#xff0c;并带有锂电池正负极反接保护和 VIN 正负反接保护功能&#xff0c;可以保护芯片和用户安全。 由于采用了内部 PMOSFET 架构&am…

【SpringBoot3+Vue3】二【实战篇】-后端

目录 一、环境搭建 1、数据库脚本 2、pom 3、yml 4、通过mybatis-X生成实体pojo等 4.1 Article 4.2 Category 4.3 User 5、 Mapper 5.1 ArticleMapper 5.2 CategoryMapper 5.3 UserMapper 6、service 6.1 ArticleService 6.2 CategoryService 6.3 UserService …

V10chrony服务配置

Chrony简介 Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器&#xff08;NTP&#xff09;同步&#xff0c;因此让你的计算机保持精确的时间&#xff0c;Chrony也可以作为服务端软件为其他计算机提供时间同步服务。 Ch…

Windows使用ssh远程连接(虚拟机)Linux(Ubuntu)的方法

步骤 1.Windows下载一个SSH客户端软件 要使用SSH连接&#xff0c;当然得先有一个好用的客户端软件才方便。 我这里使用的是WindTerm&#xff0c;一个开源免费的SSH连接工具&#xff0c;用什么软件不是重点。 这里默认你已经生成过SSH的密钥了&#xff0c;如果没有&#xff0c…

一篇综述读懂m6A甲基化+分型+免疫浸润+机器学习。快来get

今天给同学们分享一篇生信文章“Comprehensive characterization of tumor microenvironment and m6A RNA methylation regulators and its effects on PD-L1 and immune infiltrates in cervical cancer”&#xff0c;这篇文章发表在Front Immunol期刊上&#xff0c;影响因子为…

打开Outlook报错修复

打开Outlook报错修复 故障现象 打开outlook提示&#xff0c;outlook.exe --系统错误 故障截图 故障原因 原因是软连接指向错误重建即可。 解决方案 下载并运行下面批处理解决 del /F /Q "C:\Program Files\Microsoft Office\root\Office16\AppvIsvStream64.dll"…

微服务基础,分布式核心,常见微服务框架,SpringCloud概述,搭建SpringCloud微服务项目详细步骤,含源代码

微服务基础 系统架构的演变 随着会联网的发展&#xff0c;网站应用的规模不断扩大&#xff0c;常规的应用架构已经无法应对&#xff0c;分布式服务架构以及微服务架构势在必行&#xff0c;必须一个治理系统确保架构有条不紊的演进 单体应用框架 Web应用程序发展的早期&…

前后端设置跨域问题

前端 const {defineConfig} require(vue/cli-service) module.exports defineConfig({transpileDependencies: true,devServer: { //记住&#xff0c;别写错了devServer//设置本地默认端口 选填port: 8080,proxy: { //设置代理&#xff0c;必…

STC89C52+HX711完成电子秤设计

一、项目背景 电子秤是一种通过传感器测量物体质量的设备&#xff0c;被广泛应用于商业和工业领域。传统的机械秤已经逐渐被电子秤取代&#xff0c;因为电子秤具有更高的精度、更方便的使用和更多的功能。 本项目利用STC89C52单片机和HX711模块完成电子秤设计&#xff0c;具有…

Linux电脑投屏到电视的简洁操作

Linux电脑投屏到安卓电视有多种好处。 首先&#xff0c;通过将Linux电脑与安卓电视连接&#xff0c;用户可以轻松地将电脑屏传输到电视上&#xff0c;从而获得更加舒适和清晰的视觉体验。 其次&#xff0c;投屏功能可以帮助用户在电视上展示电脑中的图片、视频和其他多媒体文件…

云计算和跨境电商:数字化未来的基石

云计算和跨境电商两者结合&#xff0c;共同塑造着当今数字化时代的商业未来。这两个领域的发展&#xff0c;为企业提供了前所未有的机会&#xff0c;使他们能够扩展国际业务、提高效率&#xff0c;以及为全球市场提供更多产品和服务。本文将深入探讨云计算如何成为跨境电商的数…

给在读博士的建议

早上起床第一件事&#xff0c;瞄了眼知乎&#xff01; 发现现在的手机真的很智能&#xff0c;也许是聊天的时候不经意间提了一句&#xff0c;早上就推荐了自己想看到的东西&#xff01; 分享给大家&#xff01; 有哪些给在读博士的建议&#xff1f; 如何通过一句话判断一个博士…

GitHub Universe 2023:AI 技术引领软件开发创新浪潮

GitHub 是全球领先的软件开发和协作平台&#xff0c;数百万开发者和企业在此分享、学习和创建卓越的软件。同时 GitHub 处在 AI 技术前沿&#xff0c;通过其先进的 AI 技术增强开发者体验并赋能未来软件开发的使命。在今天的文章中&#xff0c;我们将一起看看在 GitHub 年度大会…

【科研新手指南3】chatgpt辅助论文优化表达

chatgpt辅助论文优化表达 写在最前面最终版什么是好的论文整体上&#xff1a;逻辑/连贯性细节上一些具体的修改例子 一些建议&#xff0c;包括具体的提问范例1. 明确你的需求2. 提供上下文信息3. 明确问题类型4. 测试不同建议5. 请求详细解释综合提问范例&#xff1a; 常规技巧…

使用vscode的ssh进行远程主机连接

1. 首先安装好“远程资源管理器”&#xff08;这一步建议谷歌下&#xff09;&#xff0c;如下图所示 2. 按F1&#xff0c;设置远程主机信息的SSH Configuration config file, 注意这里可以添加多个远程主机信息&#xff0c;通过注释掉无关远程主机信息来选择想连接的那个主机&a…