『模拟赛』暑假集训CSP提高模拟12

Rank

正常偏下发挥吧。

image

A. 黑客

签到题。

题目中的关键点是只有 \(x\)\(y\) 的和在区间 \(\left[0,999\right]\) 内才合法,因此我们只枚举和在这个范围内的两个值,寻找约分前的值即可,复杂度为 \(\mathcal{O(999^2)}\)

点击查看代码
#include<bits/stdc++.h>
#define fo(x,y,z) for(register int (x)=(y);(x)<=(z);(x)++)
#define fu(x,y,z) for(register int (x)=(y);(x)>=(z);(x)--)
using namespace std;
typedef long long ll;
#define lx ll
inline lx qr()
{char ch=getchar();lx x=0,f=1;for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;for(;ch>='0'&&ch<='9';ch=getchar())x=(x<<3)+(x<<1)+(ch^48);return x*f;
}
#undef lx
#define qr qr()
const int Ratio=0;
const int N=1e6+5;
const int mod=1e9+7;
ll A,B,C,D,ans;
namespace Wisadel
{short main(){// freopen(".in","r",stdin),freopen(".out","w",stdout);// // cin.tie(0),cout.tie(0);// ios::sync_with_stdio(0);A=qr,B=qr,C=qr,D=qr;fo(i,1,999)fo(j,1,999-i)if(__gcd(i,j)==1){ll l1=ceil(1.0*A/i),r1=B/i,l2=ceil(1.0*C/j),r2=D/j;ll t=min(r1,r2)-max(l1,l2)+1;if(t>0) ans=(ans+t%mod*(i+j)%mod+mod)%mod;}printf("%lld\n",ans);return Ratio;}
}
int main(){return Wisadel::main();}

B. 密码技术

原[ARC107C] Shuffle Permutation

也是很水的题,赛时的想法很接近正解了,但就差一点。

若第 \(i\) 行和第 \(j\) 行均可与第 \(k\) 行交换,那么第 \(i\) 行也可与第 \(j\) 行交换。知道了这一点,大概就能猜出来这单独的一组的方案数为组容量的阶乘。

还有一个性质就是,行与行之间的交换不会影响列之间的交换,所以依据乘法原理,答案为二者相乘。

因此我们行列分开找,每次利用并查集找到分组情况,然后得阶乘的积即可。

点击查看代码
#include<bits/stdc++.h>
#define fo(x,y,z) for(register int (x)=(y);(x)<=(z);(x)++)
#define fu(x,y,z) for(register int (x)=(y);(x)>=(z);(x)--)
using namespace std;
typedef long long ll;
#define lx ll
inline lx qr()
{char ch=getchar();lx x=0,f=1;for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;for(;ch>='0'&&ch<='9';ch=getchar())x=(x<<3)+(x<<1)+(ch^48);return x*f;
}
#undef lx
#define qr qr()
const int Ratio=0;
const int N=1e5+5;
const int mod=998244353;
int n,k;
int a[55][55],fx[55],siz[55];
ll ans=1,jc[N];
namespace Wisadel
{int Wfind(int x){if(x!=fx[x]) return fx[x]=Wfind(fx[x]);return x;}short main(){// freopen(".in","r",stdin),freopen(".out","w",stdout);n=qr,k=qr;memset(a,0x7f,sizeof a);fo(i,1,n) fo(j,1,n) a[i][j]=qr;jc[1]=1;fo(i,2,n) jc[i]=jc[i-1]*i%mod;fo(i,1,n) fx[i]=i;fo(i,1,n)fo(j,i+1,n){bool can=1;fo(o,1,n) if(a[i][o]+a[j][o]>k) {can=0;break;}if(!can) continue;int _1=Wfind(i),_2=Wfind(j);fx[_1]=_2;}fo(i,1,n) siz[Wfind(i)]++;fo(i,1,n) if(siz[i]) ans=ans*jc[siz[i]]%mod;memset(siz,0,sizeof siz);fo(i,1,n) fx[i]=i;fo(i,1,n)fo(j,i+1,n){bool can=1;fo(o,1,n) if(a[o][i]+a[o][j]>k) {can=0;break;}if(!can) continue;int _1=Wfind(i),_2=Wfind(j);fx[_1]=_2;}fo(i,1,n) siz[Wfind(i)]++;fo(i,1,n) if(siz[i]) ans=ans*jc[siz[i]]%mod;printf("%lld\n",ans);return Ratio;}
}
int main(){return Wisadel::main();}

C. 修水管

原[HNOI2015] 亚瑟王

题面爆改计划,膜拜 HDK 光速找到原题。

期望的题,挺恶心的,挂一篇我觉得很好的题解润了。

点击查看代码
#include<bits/stdc++.h>
#define fo(x,y,z) for(register int (x)=(y);(x)<=(z);(x)++)
#define fu(x,y,z) for(register int (x)=(y);(x)>=(z);(x)--)
using namespace std;
typedef long long ll;
#define lx ll
inline lx qr()
{char ch=getchar();lx x=0,f=1;for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;for(;ch>='0'&&ch<='9';ch=getchar())x=(x<<3)+(x<<1)+(ch^48);return x*f;
}
#undef lx
#define qr qr()
const int Ratio=0;
const int N=255;
const int mod=998244353;
int n,r,d[N];
double p[N],fp[N],pf[N][N],f[N][N];
namespace Wisadel
{short main(){// freopen(".in","r",stdin),freopen(".out","w",stdout);int T=qr;while(T--){n=qr,r=qr;fo(i,0,n-1) cin>>p[i],d[i]=qr;fo(i,0,n-1){pf[i][0]=1;fo(j,1,r) pf[i][j]=pf[i][j-1]*(1-p[i]);}memset(f,0,sizeof f),memset(fp,0,sizeof fp);f[0][0]=pf[0][r];f[0][1]=fp[0]=1-f[0][0];fo(i,1,n-1) fo(j,0,r){fp[i]+=f[i-1][j]*(1-pf[i][r-j]);f[i][j]+=f[i-1][j]*pf[i][r-j];if(j) f[i][j]+=f[i-1][j-1]*(1-pf[i][r-j+1]);}double ans=0;fo(i,0,n-1) ans+=d[i]*fp[i];printf("%.10lf\n",ans);}return Ratio;}
}
int main(){return Wisadel::main();}

D. 货物搬运

原[CF455D] Serega and Fun

一眼平衡树,但赛时看 T3 看麻了只打了暴力。

果然最后还是分块+双端队列碾过去了。

没啥好说的,分块就是暴力,一看就懂。

点击查看代码
#include<bits/stdc++.h>
#define fo(x,y,z) for(register int (x)=(y);(x)<=(z);(x)++)
#define fu(x,y,z) for(register int (x)=(y);(x)>=(z);(x)--)
using namespace std;
typedef long long ll;
#define lx ll
inline lx qr()
{char ch=getchar();lx x=0,f=1;for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;for(;ch>='0'&&ch<='9';ch=getchar())x=(x<<3)+(x<<1)+(ch^48);return x*f;
}
#undef lx
#define qr qr()
const int Ratio=0;
const int N=1e5+5;
const int mod=998244353;
int n,q,m,sq,ans;
int c[355][N];
deque<int> dq[N];
namespace Wisadel
{void Wget(int &x){x=(x+ans-1)%n+1;}short main(){// freopen(".in","r",stdin),freopen(".out","w",stdout);n=qr;sq=sqrt(n);m=n/sq+1;int x;fo(i,0,n-1) x=qr,dq[i/sq].push_back(x),c[i/sq][x]++;q=qr;while(q--){int op=qr,l=qr,r=qr;Wget(l),Wget(r);if(l>r) swap(l,r);l--;int lbl=l/sq,rbl=r/sq;if(op==1){if(lbl==rbl){r=r%sq-1,x=dq[rbl][r];dq[rbl].erase(dq[rbl].begin()+r);dq[lbl].insert(dq[lbl].begin()+l%sq,x);}else{for(int i=lbl;i<rbl;){x=dq[i].back(),dq[i].pop_back(),c[i][x]--,i++;dq[i].push_front(x),c[i][x]++;}r%=sq,x=dq[rbl][r];dq[rbl].erase(dq[rbl].begin()+r),c[rbl][x]--;dq[lbl].insert(dq[lbl].begin()+l%sq,x),c[lbl][x]++;}}else{int k=qr;Wget(k);ans=0;if(lbl==rbl)fo(i,l%sq,r%sq-1) ans+=dq[lbl][i]==k;else{fo(i,lbl+1,rbl-1) ans+=c[i][k];fo(i,l%sq,dq[lbl].size()-1) ans+=dq[lbl][i]==k;fo(i,0,r%sq-1) ans+=dq[rbl][i]==k;}printf("%d\n",ans);}}return Ratio;}
}
int main(){return Wisadel::main();}

计数题+期望题,最ex的数学知识全弄到一场了。

发挥感觉一般,还没到挂很多分的地步,得加把劲。

点击查看HDK


完结撒花~

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

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

相关文章

国外远程控制软件排行榜

在全球化和数字化时代,远程控制软件已成为企业和个人用户日常工作的重要工具。无论是为了远程协助、在线教育,还是跨国公司的远程办公需求,选择一款合适的远程控制软件至关重要。本文将详细介绍和对比几款全球范围内知名且在中国使用效果较好的远程控制软件:TeamViewer、Sp…

BUUCTF [GXYCTF2019]simple CPP

buu上的一道z3题,记录一下z3奇怪的用法。 首先扔进ida,打开主函数,非常混乱的算法,大概发现两个关键点:这里应该是对flag进行异或得到v6而这里的比较应该就是求解flag的关键,可以看出来有四个未知数,求解也是非常简单,z3直接求解即可: from z3 import * x, y, z, w…

使用 `useServerSeoMeta` 优化您的网站 SEO

title: 使用 useServerSeoMeta 优化您的网站 SEO date: 2024/7/31 updated: 2024/7/31 author: cmdragon excerpt: 摘要:本文介绍了Nuxt3框架中的useServerSeoMeta函数,它用于服务器端渲染(SSR)中设置SEO元标签,以优化性能和搜索引擎排名。内容包括其基本用法、详细示例及…

即构场景化SDK UIKits,互动应用开发周期缩短 75%

随着泛娱乐社交行业的日益成熟,创业者在探索新场景并将其产品化的过程中,面临着可利用的时间窗口正在急剧收窄的挑战。因此产品能否迅速迭代和高效上线,成为衡量企业创新效率的核心标准。 即构科技作为行业领先的实时互动音视频云服务商,通过提供场景化 SDK UIKits,助力企…

Paper Reading: Cost-sensitive deep forest for price prediction

针对价格预测问题的特点,本文提出了一种代价敏感的深度森林价格预测方法 CSDF。通过代价敏感方案对远离真实价格类别的错误分类施加更高的成本,期望降低错误分类的成本并将其推向真实价格范围。此外为了进一步提高整体性能,通过修改传统的 K-means 方法,开发了一种改进的 K…

EtherCAT从站重启及状态检测

VAR nSlaveState:ETC_SLAVE_STATE;pSlave:POINTER TO ETCSlave; END_VAR(* 示例1 :检查单个从站状态 *) InoSV630N(xSetOperational:= TRUE, wState=> nSlaveState);(* 示例2 :检查所有从站的链表 *) pSlave:=EtherCAT.FirstSlave; WHILE pSlave<>0 DOpSlave^(…

Java图片处理Thumbnailator

原文链接:https://zhuanlan.zhihu.com/p/604121848Thumbnailator是Google开源的优秀图片处理的第三方Java类库,比JDK自带的库要好用的多。 官网Github地址 Maven依赖 目前最新版本是0.4.19<dependency><groupId>net.coobird</groupId><artifactId>thu…

局域网这客户端连接MySQL数据库,含(CMT X进阶屏连接MySQL数据库)

1:首先安装MySQL服务器,服务器端安装的是Server version: 8.0.37 MySQL Community Server - GPL版本 2. 修改MySQL配置文件允许远程访问找到并编辑MySQL配置文件my.ini,该文件通常位于C:\ProgramData\MySQL\MySQL Server <version>\my.ini。 使用文本编辑器(VsCode)…

EtherCAT主站重启及状态检测

VARxReset: BOOL;xReset_R:R_TRIG;xETC_StateOK:BOOL; END_VAR(*注:FB 实例声明 当设备仅有 1 个 EtherCAT 主站时,实例化名称应该是 ETHERCAT;如汇川 AM600/AM400 系列 当设备有 2 个 EtherCAT 主站时,实例化名称应该是 ETHERCAT_C 或者 ETHERCAT_D;如汇川 AC800 系列等*…

接口结果判断(Jemeter断言)

操作 与CSV结合起来跑多组用例减少手动测试 补充:CSV文件不仅可以写请求参数而且可以写响应结果 展示效果

fastapi 的uvicorn配置日志

目前从flask框架转fastapi,之前flask框架日志很好用。这次学习了fastapi的日志使用,第一种是自定义日志,这个不讲了,自己封装就好,第二种是使用uvicorn自带日志, Uvicorn 是 fastapi 框架的默认ASGI服务器,它提供了强大的异步能力和高性能。一、配置输出格式化 uvicorn …

MySQL 学习笔记 进阶(锁 下,InnoDB引擎 上)

锁锁-表级锁-表锁介绍表级锁,每次操作锁住整张表。锁定粒度大,发生锁冲突的概率最高,并发度最低。应用在MyISAM,InnoDB,BDB等存储引擎中。 对于表级锁,主要分为以下三类:表锁 元数据锁(meta data lock,MDL) 意向锁表锁对于表锁,分为两类:表共享读锁(read lock) 表…