2025 --【J+S 二十连测】-- 第二套 总结

总结

T1 T2 T3

很快就写出来了,没什么大问题。

T4 T5

没有写出来,下来有个非常巧妙的思路。

题解

T1

我们只需要横纵坐标最小的,最大的那些点。然后把它们全部照在一起,那就可以了。

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=2e5+5;
signed main()
{freopen("lab.in","r",stdin);freopen("lab.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int n;cin>>n;int maxx=-inf,maxy=-inf,minx=inf,miny=inf;for(int i=1;i<=n;i++){int x,y;cin>>x>>y;maxx=max(maxx,x),maxy=max(maxy,y);minx=min(minx,x),miny=min(miny,y);}cout<<minx-1<<' '<<miny-1<<endl<<maxx+1<<' '<<maxy+1;return 0;
}

T2

直接照题意模拟即可。

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=105;
char a[maxn][maxn];
string s;
int n,m,ans=0,vis[maxn][maxn];
int dx[8]={1,0,-1,0,1,1,-1,-1};
int dy[8]={0,1,0,-1,1,-1,1,-1};
// 下 右 上 左 右下 左下 右上 左上
bool in(int x,int y)
{return x>=1&&x<=n&&y>=1&&y<=m;
}
void dfs(int x,int y,int step,int f,int lf)
{vis[x][y]=1;if(step==(int)s.size()-1){ans++;vis[x][y]=0;return;}for(int i=0;i<8;i++){int tx=x+dx[i],ty=y+dy[i];if(f==-1||i==f){if(in(tx,ty)&&s[step+1]==a[tx][ty]&&!vis[tx][ty]) dfs(tx,ty,step+1,i,lf);}else if(lf!=-1) continue;else if(s[step+1]==a[tx][ty]&&!vis[tx][ty]){f++,i++;if(f==1&&(i==2||i==4)) dfs(tx,ty,step+1,i-1,f-1);if(f==2&&(i==1||i==3)) dfs(tx,ty,step+1,i-1,f-1);if(f==3&&(i==2||i==4)) dfs(tx,ty,step+1,i-1,f-1);if(f==4&&(i==1||i==3)) dfs(tx,ty,step+1,i-1,f-1);if(f==5&&(i==6||i==7)) dfs(tx,ty,step+1,i-1,f-1);if(f==6&&(i==5||i==8)) dfs(tx,ty,step+1,i-1,f-1);if(f==7&&(i==5||i==8)) dfs(tx,ty,step+1,i-1,f-1);if(f==8&&(i==6||i==7)) dfs(tx,ty,step+1,i-1,f-1);f--,i--;}}vis[x][y]=0;
}
signed main()
{freopen("treasure.in","r",stdin);freopen("treasure.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);cin>>s>>n>>m;for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j];for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(a[i][j]==s[0]) dfs(i,j,0,-1,-1);cout<<ans;return 0;
}

T3

不难发现是一个周期问题先发掘他是在第几位,然后去一个一个找即可。

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=2e5+5;
char a[maxn];
int b[maxn],cnt;
signed main()
{freopen("song.in","r",stdin);freopen("song.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);string s;cin>>s;int x;cin>>x;x++;for(int i=0;i<s.size();i++){a[++cnt]=s[i];while(isdigit(s[i+1])) i++,b[cnt]=b[cnt]*10+(s[i]-'0');b[cnt]+=b[cnt-1];}int sy=(x-1)%b[cnt]+1;for(int i=1;i<=cnt;i++){if(b[i]>=sy){cout<<a[i];return 0;}}return 0;
}

T4

不难发现,我们。把B从大到小排序,这样子做一定是最优的。

排完序之后,我们考虑DP。

\(dp_{i,j}\) 表示前 \(i\) 个人。其中一个已经分过去的人的 \(a\) 和是 \(j\) 时,答案是几

那么方程为:

\[dp_{i,j}=\min(\max(j+b_i,f_{i-1,j}),\max(s_i-j+b_i,f_{i-1,j})) \]

转移即可

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=500005;
int dp[maxn];
struct node
{int a,b;
}a[maxn];
bool cmp(node a,node b)
{return a.b>b.b;
}
signed main()
{freopen("meal.in","r",stdin);freopen("meal.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int n,sum=0;cin>>n;for(int i=1;i<=n;i++) cin>>a[i].a>>a[i].b;sort(a+1,a+1+n,cmp);memset(dp,0x3f,sizeof(dp));dp[0]=0;for(int i=1;i<=n;i++){sum+=a[i].a;for(int j=sum;j>=0;j--){dp[j]=max(dp[j],sum-j+a[i].b);if(j>=a[i].a) dp[j]=min(dp[j],max(j+a[i].b,dp[j-a[i].a]));}}int ans=inf;for(int i=0;i<=sum;i++) ans=min(ans,dp[i]);cout<<ans;return 0;
}

T5

不难发觉,在二进制上的某一位有一个一的情况下,那么这些在这一位唯一的数肯定不能在同一个集合。

但是这样并不好转移,所以我们考虑正难则反假设他们必须在同一个集合。

而对于集合里面的东西,我们可以用并查集来维护。答案就是 \(2^{并查集联通块个数}\)

最后利用容器把答案累加即可。

代码

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3f
#define int long long
#define endl '\n'
using namespace std;
const int maxn=500+5,mod=998244353;
struct UFS
{int fa[maxn],n;void init(int len){n=len;for(int i=1;i<=n;i++) fa[i]=i;}int get(int x){return fa[x]==x?x:fa[x]=get(fa[x]); }void merge(int u,int v){u=get(u),v=get(v);if(u!=v) fa[v]=u;}
}ufs;
int kasumi(int a,int b)
{int ans=1;while(b){if(b&1) ans=ans*a%mod;a=a*a%mod;b>>=1;}return ans;
}
int a[maxn];
signed main()
{freopen("partition.in","r",stdin);freopen("partition.out","w",stdout);ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int n,d = 0,ans=0;cin>>n;for(int i=1;i<=n;i++) cin>>a[i],d|=a[i];for(int j=0;j<(1<<15);j++){if((d&j)!=j) continue;ufs.init(n);for(int i=0;i<=14;i++){if(!(j&(1<<i))) continue;int now=0;for(int k=1;k<=n;k++){if(a[k]&(1<<i)){if(!now) now=k;ufs.merge(k,now);}}}int sum=0;for(int i=1;i<=n;i++) if(ufs.fa[i]==i) sum++;if(__builtin_popcount(j)%2==0) ans=(ans+kasumi(2,sum))%mod;else ans=(ans-kasumi(2,sum)+mod)%mod;}cout<<ans;return 0;
}

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

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

相关文章

2025 蒸发器厂家最新企业品牌推荐排行榜,江苏纵横携手知名品牌,彰显蒸发器公司行业影响力

在当前的工业生产领域,蒸发器作为重要的设备,广泛应用于食品发酵、化工、医药、环保等多个行业。然而,市场上蒸发器厂商数量众多,产品质量参差不齐,技术水平也存在较大差异,给企业在选购时带来了诸多困扰。部分厂…

如何将 WSL 的 Ubuntu-24.04 迁移到其他电脑 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

题解:Luogu P11976 [KTSC 2021] 通信网络 / communication

一些约定 下文中的 \(x\) 的祖先,都指位于 \(\bm{fa_x}\) 到根节点路径上的点(也就是不包括 \(x\))。 对于无向图 DFS 生成树中的一条返祖边,我们称深度较浅的那端为上端点,深度较深的那端为下端点。 题意 对于一…

弦振动方程

弦振动方程 参考:https://chat.deepseek.com/a/chat/s/36c8bd34-0600-4a94-be96-8363d028df9d

理论构建尝试整理

通过脑机接口的电信号实时训练神经网络模型 研究方向:生成式认知主体 导论: 自从1947的 但至少在我看来现如今的人工智能发展方向完全是走错了路线 根据图灵测试的逻辑来讲 著名的图灵测试诞生,按照“人工智能之父”…

应用安全 --- 安卓安全 之 调用隐藏

应用安全 --- 安卓安全 之 调用隐藏可能会将调用的so中方法写入jnionload中动态注册同时将函数字符串加密存储这个问题很常见,有几种可能的原因。让我帮你分析一下: 可能的原因和解决方案 1. 函数名被混淆或压缩bash…

电子商城网站开发平面广告设计素材网

PTA 排队“夹塞”是引起大家强烈不满的行为&#xff0c;但是这种现象时常存在。在银行的单窗口排队问题中&#xff0c;假设银行只有1个窗口提供服务&#xff0c;所有顾客按到达时间排成一条长龙。当窗口空闲时&#xff0c;下一位顾客即去该窗口处理事务。此时如果已知第i位顾客…

淘宝客网站哪个好克隆视厅网站怎么做

人工智能和芯片供应商 XMOS 宣布与嵌入式音频软件专家 DSP Concepts 建立合作伙伴关系。该合作协议将允许音频开发人员将 XMOS 的高度确定性、低延迟的 xcore.ai 平台与 DSP Concepts 的 Audio Weaver 软件结合起来。该软件使用户能够利用多核算力以图形方式设计和调试音频和语…

商城网站开发视频邯郸网站设计邯郸网站制作

简介&#xff1a; 《实时数仓入门训练营》由阿里云研究员王峰、阿里云资深技术专家金晓军、阿里云高级产品专家刘一鸣等实时计算 Flink 版和 Hologres 的多名技术/产品一线专家齐上阵&#xff0c;合力搭建此次训练营的课程体系&#xff0c;精心打磨课程内容&#xff0c;直击当下…

2025聚合硫酸铁厂家最新企业品牌推荐排行榜,工业聚合硫酸铁,混凝剂聚合硫酸铁,固态聚合硫酸铁,粉末聚合硫酸铁,硫酸亚铁公司推荐!

当前聚合硫酸铁行业发展迅速,市场上生产厂家数量众多,但质量参差不齐,给采购方带来诸多选择难题。部分厂家存在生产工艺落后、产品纯度不足的问题,导致其生产的聚合硫酸铁在水处理等应用场景中效果不佳,不仅影响水…

2025成型机厂家最新企业品牌推荐排行榜,冷弯成型机,卷帘门成型机,卷闸门成型机,彩钢瓦成型机,货架成型机推荐!

在当前金属加工行业快速发展的背景下,冷弯成型机作为关键生产设备,其质量与性能直接影响企业的生产效率和产品品质。然而,市场上成型机厂家数量众多,实力参差不齐,给企业选购带来诸多困扰。部分厂家缺乏核心技术,…

基于springboot的家政服务预约系统 - 指南

基于springboot的家政服务预约系统 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

天水市秦州区作风建设年网站wordpress文章图片大小

在使用proteus的时候&#xff0c;有时候你会发现点击调试开始运行后&#xff0c;串口虚拟终端没有自动弹窗的问题&#xff0c;其实照成这种现象的原因是你在使用的过程中移动了器件位置或者是对整个视窗使用鼠标滚动进行缩放了&#xff0c;如果要重新弹窗则需要进行以下操作: …

网站设计人员就业要求正邦设计怎么样

2024年2月10日力扣题目训练 2024年2月10日力扣题目训练551. 学生出勤记录 I557. 反转字符串中的单词 III559. N 叉树的最大深度241. 为运算表达式设计优先级260. 只出现一次的数字 III126. 单词接龙 II 2024年2月10日力扣题目训练 2024年2月10日第十七天编程训练&#xff0c;今…

手机网站开发工具影视网站建设需要学什么

来源&#xff1a;股权投资论坛目录一、隐形冠军的概念二、隐形冠军的四个特征三、隐形冠军为何隐形四、隐形冠军到底有多牛五、如何成为隐形冠军六、中国隐形冠军多吗1隐形冠军的概念“隐形冠军”这个概念是赫尔曼西蒙教授提出的。1986年&#xff0c;他在研究德国出口数据时发现…

2025 年 PP 管厂家最新推荐榜:甄选 pp 风管,PP 喷淋塔,pp 洗涤塔,pp 通风管道优质公司!

引言当前 PP 管市场供需两旺,但采购痛点愈发凸显。部分厂家为压缩成本选用劣质原料,导致产品耐腐、抗老化性能不达标,使用中频繁出现破裂渗漏,既造成经济损失又埋下安全隐患。市场上厂家水平参差不齐,多数缺乏专业…

解密并下载受DRM保护的MPD(DASH流媒体)加密视频 - 教程

解密并下载受DRM保护的MPD(DASH流媒体)加密视频 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

在PyCharm中运行 wandb.login();

在PyCharm中运行 wandb.login()wandb: ERROR api_key not configured (no-tty). call wandb.login(key=[your_api_key])Traceback (most recent call last): File "E:/assificnLi-v2.py", line 60, in <…

网站管理员在哪里浙江网站建设而

我们总是希望MySQL能够获得更高的查询性能&#xff0c;最好的办法是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点&#xff0c;就会发现&#xff1a;很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。当向MySQL发送一个请求的…

06.概念二:神经网络 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …