Codeforces Round #785 (Div. 2) A~F

Ubuntu20.04安装Torque-6.1.2单机版(踩坑篇) 说明:PBS排队系统原先是在Centos7安装使用很顺利,但是有客户需求在Ubuntu20.04上使用,着手在Ubuntu20.04安装上安装的时候发现很多报错,并不能顺利安装,网上查找到的教程,有的说是让放弃转slurm,有的是换源安装,但是安装好的版本很低,有许多bug,不是很好用。经过自己慢慢摸索之后,改了部分配置以及源码之后,能够顺利安装,再次记录一下踩坑心得,与大家一起分享学习。如有问题,欢迎大家来撩。............... 阅读详情

小细节卡的挺难受呀
A. Subtle Substring Subtraction

Alice肯定一下取走尽可能多的数

/*input
5
aba
abc
cba
n
codeforces

*/
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
char s[N];
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int sum=0;
		scanf("%s",s+1);
		int l=strlen(s+1);
		for(int i=1;i<=l;i++) sum+=s[i]-'a'+1;
		if(l%2==0)	cout<<"Alice "<<sum<<endl;
		else{
			int L=sum-min(s[l]-'a'+1,s[1]-'a'+1);
			if(L>sum-L)cout<<"Alice "<<2*L-sum<<endl;
			else cout<<"Bob "<<sum-2*L<<endl;
		}
	}
}

每个字母都有可能成为多一的那个,但是任意两个相邻相同字母之间都存在其他字母的时候那么他就不会是那个字母

B. A Perfectly Balanced String?

/*input
5
aba
abb
abc
aaaaa
abcba

*/
#include<bits/stdc++.h>
using namespace std;
int a[30];
bool c[30];
char s[200010];
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int sum=0;
		scanf("%s",s+1);
		int l=strlen(s+1);
		for(int i=0;i<30;i++) a[i]=c[i]=0;
		for(int i=1;i<=l;i++) c[s[i]-'a']=1;
		for(int i=0;i<30;i++) sum+=c[i],c[i]=0;
		bool ans=1;
		for(int i=1;i<=l;i++)
		{
			int p=s[i]-'a';
			//cout<<i-a[p]<<endl;
			if(c[p]&&i-a[p]<sum) ans=0;
			a[p]=i;
			c[p]=1;
		}
		if(ans) puts("YES");
		else    puts("NO");
	}
}

C. Palindrome Basis

动态规划,枚举构成最大值

/*input
2
5
12
*/
#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
vector<int> a;
int sz;
bool check(int x){
	vector<int> b;
	while(x){
		b.push_back(x%10);
		x/=10;
	}
	int SZ=b.size();
	for(int i=0;i<SZ/2;i++)
		if(b[i]!=b[SZ-i-1]) return false;
	return true;
}
int ans[40010];
int main()
{
	for(int i=1;i<=40000;i++) if(check(i)) a.push_back(i);sz=a.size();
	ans[0]=1;
	for(int i=0;i<sz;i++)
	{
		for(int j=a[i];j<=40000;j++)
		{
			ans[j]+=ans[j-a[i]];
			if(ans[j]>=mod) ans[j]-=mod;
		}
	}
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		cout<<ans[n]<<endl;
	}
}

D. Lost Arithmetic Progression

暴力枚举因数计算结果
yy不是y的倍数或者两个序列并不同轨那么也会不会交的,答案为0
如果C在B的边缘那么答案是无穷的
可行区间左右对称,平方加和即可

/*input
1
-428244446 20449344 86035324
-39706910 368088192 781991

*/

#include<iostream>
using namespace std;

typedef long long ll;
ll gcd(ll x,ll y)
{
	while(y) y^=x^=y^=x%=y;
	return x;
}
const int mod=1e9+7;
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		ll x,y,z;
		ll xx,yy,zz;
		cin>>x>>y>>z;
		cin>>xx>>yy>>zz;
	
		if(yy%y!=0||xx<x||x+(z-1)*y<xx+(zz-1)*yy||(x-xx)%y!=0) cout<<0<<endl;
		else if(x>xx-yy||x+(z-1)*y<xx+zz*yy) cout<<-1<<endl;
		else
		{
			ll g=yy/y;
			
			while(g*y/gcd(g,y)!=yy) g=yy/y*gcd(g,y);

			ll p=y/gcd(y,g);
			ll ans=0;

			for(ll i=1;i*i<=p;i++)
			{
				if(p%i==0)
				{
					if(p/i==i) ans+=i*i;
					else ans+=i*i+p/i*p/i;
					ans%=mod;
				}
			}
			cout<<ans<<endl;
		}
		
	}
}

E. Power or XOR?

taps 每段区间的长度不会超过21
所以可以暴力的枚举每一段区间,每一段的区间指数<1e6,大的会被模掉,对答案不产生影响
对于每一段,通过组合数计算出现奇偶次数,偶数次XOR=0;对答案不产生影响,对于奇数次位置XOR1
组合数的奇偶性可以暴力求那一段可行区间的,也可以使用C(l,r)=C(l-1,r)+C(l-1,r-1);
+C(l,r…l)=C(l,r)+2*K+C(l,l);因此计算两边的奇偶性即可

补上一个高级的判定方法若l&r=r,则C为奇数,否则为偶数

/*input
2 1
1 2

*/
#include<iostream>
using namespace std;
typedef long long ll;
const int N=2e6+10;
const int MAX=1024*1024;
int c2[N],b[N],b2[N],ans[N],base;
ll pb[N];
bool f[31][N];
int pf[31][N];
bool check(int l,int r)
{
	if(r>l) return 0;
	if(r==0) return pf[l-base][l]&1;
	return (pf[l-base][l]-pf[l-base][r-1])&1;
}
bool check2(int l,int r)
{
	if(r>l) return 0;
	return !(c2[l]-c2[l-r]-c2[r]);
}
int ksm(int x,int y)
{
	int ans=1;
	while(y){
		if(y&1) ans=ans*x;
		y>>=1;
		x*=x;
	}
	return ans;
}

void cal(int l,int r,int cl,int cr)
{
	if(check(cl,cr)&&pb[r]-pb[l]+b2[l]<20){
		int idx=ksm(2,pb[r]-pb[l])*b[l];
		ans[idx]^=1;
	}
}
int read()
{
	int ans=0;
	char c=getchar();
	while(c==' '||c=='\n') c=getchar();
	while(c>='0'&&c<='9') ans=ans*10+c-'0',c=getchar();
	return ans;
}
int main()
{
	for(int i=1;i<N;i++){
		int p=i;
		c2[i]+=c2[i-1];
		while((p&1)==0) c2[i]++,p>>=1;
	}
	int n,k;
	cin>>n>>k;
	base=max(n-30,0);

	for(int i=max(0,n-30);i<=n;i++)
		for(int j=0;j<=n;j++){
			f[i-base][j]=check2(i,j);
			if(j==0) pf[i-base][j]=f[i-base][j];
			else pf[i-base][j]=pf[i-base][j-1]+f[i-base][j];
		}

	for(int i=1;i<=n;i++){
		b[i]=read();
		pb[i]=pb[i-1]+b[i];
		int p=b[i];p>>=1;
		while(p) b2[i]++,p>>=1;
	}
	if(k==0) cal(1,n,0,0);
	k=max(k,1);
	for(int j=1;j<min(n,25);j++) cal(1,j,n-j-1,k-1);
	for(int j=max(2,n-25);j<=n;j++) cal(j,n,j-2,k-1);
	k=max(k,2);
	for(int i=2;i<=n-1;i++)
		for(int j=1;j<=25&&i+j-1<n;j++)
			cal(i,i+j-1,n-j-2,k-2);
	bool zero=1;
	for(int i=N;i>=0;i--){
		if(ans[i]) zero=0;
		if(!zero) printf("%d",ans[i]);
	}
	if(zero) cout<<0;
	puts("");
}
/*input
3 0
3 1 2
*/
#include<iostream>
using namespace std;
typedef long long ll;
const int N=2e6+10;
const int MAX=1024*1024;
int c2[N],b[N],b2[N],ans[N],st[N];
ll pb[N];
bool check(int l,int r)
{
	if(r>l) return 0;
	if(l==0) return 1;
	if(r==0) return 0;
	return !(((l-1)&(r-1))^(r-1));
}
int ksm(int x,int y)
{
	int ans=1;
	while(y){
		if(y&1) ans=ans*x;
		y>>=1;
		x*=x;
	}
	return ans;
}

bool cal(int l,int r,int cl,int cr)
{
	if(pb[r]-pb[l]+b2[l]>=20) return 0;
	if(check(cl,cr)){
		int idx=ksm(2,pb[r]-pb[l])*b[l];
		ans[idx]^=1;
	}
	return 1;
}
int read()
{
	int ans=0;
	char c=getchar();
	while(c==' '||c=='\n') c=getchar();
	while(c>='0'&&c<='9') ans=ans*10+c-'0',c=getchar();
	return ans;
}
int main()
{
	int n,k;
	cin>>n>>k;
	for(int i=0;(1<<i)<=MAX;i++) st[1<<i]=i;
	for(int i=1;i<=MAX;i++) if(!st[i]) st[i]=st[i-1];
	for(int i=1;i<=n;i++){
		b[i]=read();
		pb[i]=pb[i-1]+b[i];
		b2[i]=st[b[i]];
	}
	if(k==0) cal(1,n,0,0);
	k=max(k,1);
	for(int j=1;j<min(n,25);j++) if(!cal(1,j,n-j-1,k-1)) break;
	for(int j=n;j>=max(2,n-25);j--) if(!cal(j,n,j-2,k-1)) break;
	k=max(k,2);
	for(int i=2;i<=n-1;i++)
		for(int j=1;j<=25&&i+j-1<n;j++)
			if(!cal(i,i+j-1,n-j-2,k-2)) break;
	bool zero=1;
	for(int i=MAX;i>=0;i--){
		if(ans[i]) zero=0;
		if(!zero) printf("%d",ans[i]);
	}
	if(zero) cout<<0;
	puts("");
}

F. Anti-Theft Road Planning

我们尽量把高位相同放在一块
想办法让每个节点唯一代表一个值并且相邻两数的异或和尽可能小
对于32*32;把他分成四分,最高两位一致的放在四个角上
其次对于矩阵的四份做一个上下左右对称,这样位于边界上的数除了最高位不同以外,其他位相同
依次分型递推

#include<iostream>
using namespace std;
int s[50][50];
int mp[50][50][2];
int ans[2000][2];
void cp(int x,int y,int xx,int yy,int n,int p,int xj,int yj)
{
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
			s[xx+i*xj][yy+j*yj]=s[x+i][y+j]+p;
}
void build(int x)
{
	if(x==0) return ;
	build(x-1);
	cp(1,1,1,1<<x,(1<<(x-1)),1<<2*(x-1),1,-1);
	cp(1,1,1<<x,1,(1<<(x-1)),2<<2*(x-1),-1,1);
	cp(1,1,1<<x,1<<x,(1<<(x-1)),3<<2*(x-1),-1,-1);
}
int main()
{
	int n,k,idx=0;
	cin>>n;
	build(5);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(j>1) mp[i][j][0]=s[i][j]^s[i][j-1];
			if(i>1) mp[i][j][1]=s[i][j]^s[i-1][j];
			ans[s[i][j]][0]=i;
			ans[s[i][j]][1]=j;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=2;j<=n;j++) cout<<mp[i][j][0]<<' ';
		puts("");
	}
	for(int i=2;i<=n;i++){
		for(int j=1;j<=n;j++) cout<<mp[i][j][1]<<' ';
		puts("");
	}
	cin>>k;
	while(k--)
	{
		int mod;
		cin>>mod;
		idx^=mod;
		cout<<ans[idx][0]<<' '<<ans[idx][1]<<endl;
	}	
}
YOLOv12涨点改进 | CVPR 2026 |独家创新首发、特征融合改进篇 | 引入Local Attender 局部注意力算子融合模块,高效捕捉小目标和密集目标的局部上下文特征,助力高效涨点 🚀本文提出LocalAttender模块改进YOLOv12模型,通过局部注意力机制解决传统上采样方法的语义漂移问题。该模块采用固定偏移邻域加权聚合方式,在保持线性计算复杂度的同时有效捕捉小目标和密集目标的局部特征。实验表明,LocalAttender能显著提升检测精度而不增加过多计算负担,且与YOLOv12兼容性强。文章详细介绍了模块原理、实现方法和配置步骤,并提供了两种改进方案的具体yaml配置文件。这一创新为提升目标检测性能提供了高效解决方案。 阅读详情

相关推荐

Gamit 数据处理,相关的文件配置

一、处理前准备 1、在主文件夹内新建test项目文件,项目内新建brdc、igs和rinex三个文件夹,分别存放广播星历,精密星历几观测值文件,所用的命令分别为sh_get_nav、sh_get_orbits和sh_get_rinex (若文件为.Z,用gunzip命令解压,若仍为d,用命令sh_crx2rnx -f 命令解压为o文件) 2、进入test项目文件夹,链接tables,运行 sh_setup -yr 2015 -apr itrf08_com.apr 3、生成station.info文件。 将t

CodeDoraemon的博客 3375

Codeforces Round #785 (Div. 2)

Codeforces Round #785 (Div. 2) A. Subtle Substring Subtraction 贪心; #include<bits/stdc++.h> #define ll long long using namespace std; const int N = 1e6+5,N2 = 1e3+5; int a[N]; int main() { int i,j; int t;cin>>t; while(t--) { string

weixin_50608431的博客 782

weblogic 集群搭建,双机部署,相关问题记录

4.5.集群搭建1 参考网址https://wenku.baidu.com/view/76365129cd1755270722192e453610661ed95aa4.html IP地址 端口 角色 192.168.1.160 9001 AdminServer ...

zl386119974的专栏 1670

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

Codeforces Round #785 (Div. 2) A. Subtle Substring Subtraction B. A Perfectly Balanced String? C. Palindrome Basis

m0_63444744的博客 640

MCGS触摸屏数据记录与U盘导出配置全解析

在工业自动化现场,数据记录是设备运行状态分析与故障追溯的基础。HMI触摸屏作为人机交互核心,不仅承担实时监控任务,还负责过程数据的存储与导出。理解数据采集周期、存盘机制与存储介质的匹配原理,能帮助工程师高效配置数据记录功能。合理运用定时存盘、存盘组与U盘导出,可支撑设备趋势分析、报表生成及事故排查。本文以MCGS触摸屏为例,详解数据记录的完整组态流程,并汇总常见配置陷阱与排查思路,为现场调试与长期运维提供可落地的技术参考。

weixin_34253126的博客 461

eDP、DP与HDMI——现代显示接口的核心解析

eDP、DP和HDMI各有千秋:eDP以嵌入式设备的低功耗见长,DP凭借开放生态和高带宽成为专业领域首选,而HDMI则依靠庞大的消费电子生态稳居家庭市场。未来,随着Type-C接口的普及和超高清内容的爆发,三者的技术边界可能进一步融合,但各自的核心优势仍将长期共存。对于用户而言,选择接口需基于设备需求——游戏玩家青睐HDMI的VRR,设计师依赖DP的多屏扩展,而轻薄本则离不开eDP的紧凑设计。

麟的博客 8421

Codeforces #Round 785(Div.2)

假的div2 C题没事写什么公式被卡精度了,掉分了gg --------------------------------------------------- A....几个每个字符串预先给好一个代表的值,给n个字符串,求和。 题解:手速题。 #include<iostream> #include<cstdio> #include<algorithm&...

weixin_30919235的博客 276

零成本矩阵玩法:1人运营5个账号的自动化工具链配置(2025全平台实战)

通过“AI内容生产+工具链分发+自动化变现”的组合拳,即使是新手也能实现1人运营5个账号的规模化收益。关键在于选对工具与设计标准化流程。未来,矩阵运营的竞争将聚焦于工具使用效率与数据洞察深度,快人一步者方能抢占先机!

TuFuir的博客 3786

Codeforces Round #785 div2

Round #785 (Div. 2) 文章目录A. Subtle Substring Subtraction(签到)B. A Perfectly Balanced String?(思维)C. Palindrome Basis(完全背包)D. Lost Arithmetic Progression(数学) A. Subtle Substring Subtraction(签到) 思路:nnn为奇数时,头大吃头,尾大吃尾,留下一个给BobBobBob,再做比较;nnn为偶数,AliceAliceAlice全吃必

qq_53287227的博客 429

软件测试面试题汇总

软件测试面试题汇总 测试技术面试题 ........................................................................................................................................................................ 5 1、什么是兼容

晴天的专栏 2万+

PC微信逆向) 读取内存联系人链表

首先从一些网络上搜索到的信息可以得出联系人列表是保存在内存里的,并且是全局变量不会被释放,所以我们可以通过搜索某个联系人的信息来定位

Qwertyuiop2016的博客 2920

Codeforces Round #785 (Div. 2) (A—C题解)

A. Subtle Substring Subtraction 题意:就是Alice先选字符串的一段,选完得分就是这一段字符每个字符序号之和,a是1,b是2,ab和ba都是3,以此类推。Alice可以选偶数个字符,Bob选奇数个。输出谁的分数更大,然后输出他们的分数差 思路:Alice肯定选完或者剩一个,Bob只能选一个或者一个都没 C++ #include <iostream> #include <algorithm> #include <cstdio> #includ

Darkgreen的博客 310

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Codeforce Round #785 (Div 2)D题解

Codeforce Round #785 (Div 2)D题解

m0_62367011的博客 513

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

E - Selling Souvenirs(动态规划 + 贪心 + 思维(缩小时间复杂度和空间复杂度))

题意: 输入一个n, m表示物品的数量和最大质量,接下来输入n行,每行输入w, c表示物品的质量和价值,求的是不超过m的质量的最大价值。 题解: 很明显是一个01背包问题,但问题是滚动dp能解决空间复杂度,但是解决不了时间复杂度,O(n*m)显然太大了, 因此我们会思考,创建一个三元集dp [ i ] (**它包含val, x1, x2 分别表示质量为i时的最大价值,质量为1的物品个数,质量为2的物品个数 **)这个w只有1,2,3三个数字,首先从贪心的思想考虑,我们可以对质量为1,2,3的价值进行降序..

m0_62792769的博客 305

Codeforces Round#461(Div. 2)(922B)Magic Forest(思维 异或)

B. Magic Foresttime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputImp is in a magic forest, where xorangles grow (wut?)A xorangle of order n is such a...

UncleJokerly 455

Codeforces Round #785 (Div. 2) A-D

A. Subtle Substring Subtraction 给你一个字符串,Alice先手并取偶数长度的子串,Bob后手并取奇数长度的子串,问取完整个字符串谁的值最大,差值是多少 易知Alice一定会取最长的偶数子串,先特判一下字符串长度为1时Bob赢 然后如果是偶数长度就直接取完,否则判断一下第一个字符和最后一个字符谁大,留一个小的给Bob剩下的全部取完就行 /**************** *@description:for the Escape Project *@author: Nebul

qq_34832548的博客 397

Codeforces Round #785 (Div. 2)补题

目录:官网链接B:A Perfectly Balanced String? 官网链接 B:A Perfectly Balanced String? Let’s call a string s perfectly balanced if for all possible triplets (t,u,v) such that t is a non-empty substring of s and u and v are characters present in s, the difference betwee

热爱计算机语言! 809

Codeforces Round #765 (Div. 2)部分题解

本篇题解只是记录我的做题过程代码,不提供最优解 (另外这里所有的时间复杂度都只分析单个样例,不算ttt的时间复杂度) A 点击此处查看对应的题目. 本题设计算法:贪心 + 位运算 将每个数拆开为2进制,统计所有数的二进制位置1多还是0多,然后根据题意取出较多的那个为作为答案位 贪心策略:对每位考虑,如果该位1多,就设为1,反之为设为0 时间复杂度 O(nlogn)O(nlogn)O(nlogn) #include <iostream> #include <cstring> #incl

山中一扶苏的博客 541

差分加模拟

题目 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int qz[N],hz[N]; int cnt[N],sum[N]; void update(int l,int r,int x,int *p) { p[l]+=x; p[r+1]-=x; } int main() { int t; cin>>t; while(t--) { int n,m,q; scanf("%d%d%d",&

Hello_wcrd的博客 1075

蓝桥杯 国赛 2021

#include<iostream> using namespace std; int xl[100],cl; long long dp[2][100][100]; int main() { long long n; int k; cin>>n>>k; while(n) { xl[++cl]=n%2; n/=2; } for(int i=0;i<=cl;i++) dp[0][i]

Hello_wcrd的博客 893

欧拉筛和埃氏筛求质因子个数

埃氏筛法简单易懂直接上代码 void solve() { for(int i=2;i<=20000000;i++) if(!test[i]) for(int j=i;j<=20000000;j+=i) test[j]++; } 欧拉筛: 根据算法原理将一个非质数通过他的最小质因子筛出,留下的便是质数,s=ip如果p小于i的最小质因子s的质因子比i多1,否则相等。那么: void solve() { int

Hello_wcrd的博客 795

Two Buildings

Two Buildings 【分治】【决策单调性】 There are n buildings along a horizontal street. The buildings are next to each other along the street, and the i-th building from left to right has width 1 and height hi. Among the n buildings, we are to find two buildings, say t

Hello_wcrd的博客 591
上一篇: c++程序计时
下一篇: D. Dog Walking
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值