第四届辽宁省大学生程序设计竞赛

比赛经历:2024.5.14简单vp了一个小时只写出了签到题4个然后跑路了

补题:感觉其他题有点太抽象了主要补了一题,在区间问题中数据结构的使用

比赛链接[点我即可]

目录

A.欢迎来到辽宁省赛

B.胜率

F.隔板与水槽

H.取石子

L.区间与绝对值

M.让二追三


A.欢迎来到辽宁省赛

void solve(){cout << 27 << endl;return ;
}

没啥好说的直接输出即可

B.胜率

我们首先看一下是最后答案是四舍五入保留两位小数,可以判断出来答案一定是在10000局可以做到的,同时小数并不好判断我们直接把小数变成整数跑循环暴力找答案即可

// 数学公式要变形
// 莫急莫急先读题
#include <bits/stdc++.h>
using namespace std;
#define lowbit(x) (x&(-x))
#define endl "\n"
#define ios ios::sync_with_stdio(0); cin.tie(0),cout.tie(0);
#define LF(x)   fixed<<setprecision(x)// c++ 保留小数
#define den(a) cout << #a << " = " << a << "\n";
#define deg(a) cout << #a << " = " << a << " ";
typedef long long LL;
typedef pair<int, int> PII;
const int N=1000010,M=10010,INF=0x3f3f3f3f,mod=1e9+7;
const double pai=acos(-1.0);// pai
map<int,int> mp;
int t,n,m;
const double esp = 1e-3;
void solve(){int pos = M;double res; cin>>res;int t = res * 100;for(int i=0;i<M;i++){for(int j=1;j<M;j++){double now = 1.0*i/j*100;now += 0.005;int yes = now*100;if(yes==t){pos = min(pos,j);}}}cout << pos << endl;return ;
}
signed main ()
{ios// 不能有printf puts scanfint t=1;while(t--){solve();}
}

F.隔板与水槽

我们观察数据范围可以发现应该在n^2级别,同时左右是独立的,所以我们可以枚举中间位置去记录其左右最大值即可

LL a[N];
LL L[N],R[N];void solve(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=2;i<=n;i++){for(int j=1;j<i;j++){L[i]=max(L[i],min(a[i],a[j])*(i-j));}}for(int i=n-1;i>=1;i--){for(int j=n;j>i;j--){R[i]=max(R[i],min(a[i],a[j])*(j-i));}}LL ans = 0;for(int i=2;i<n;i++) ans = max(ans,L[i]+R[i]);cout << ans << endl;return ;
}

H.取石子

我们通过对式子分析可以得出,无论如何选择,两个人能取出的石头都是奇数个数,那么结果就之和给出的奇偶有关系了,简单做个判断即可

void solve(){int a,b,n; cin>>a>>b>>n;cout << (n&1? "Alice" : "Bob") << endl;return ;
}

L.区间与绝对值

对于区间问题我们如果有式子可以简单推理一下,由式子得到就是区间中的每一个数互相做减法的绝对值之和,我们看一下对于一个区间如何计算贡献,不妨这样想如果我把右端点加一个数如何计算新的区间贡献,可以发现新来的数带来的贡献为2*(a_{new} *cnt_{[l,r](a_i<a_{new})} - sum_{[l,r](ai<a_{new})}) 

int g[N],a[N];
LL tr[N][2],res[N],ans;
struct code{int l,r,id;bool operator<(const code&t)const{return g[l]==g[t.l] ?  r<t.r : l < t.l;}
}Q[N];
void add(int op,int k,int x){for(int i=k;i<N;i+=lowbit(i)) tr[i][op]+=x;
}
LL query(int op,int k){LL res = 0;for(int i=k;i;i-=lowbit(i)) res += tr[i][op];return res;
}
void add(int x){x = a[x];ans += query(0,x-1)*x - query(1,x-1);ans += (query(1,N-1)-query(1,x)) - (query(0,N-1)-query(0,x))*x;add(0,x,1);add(1,x,x);
}
void del(int x){x = a[x];ans -= query(0,x-1)*x - query(1,x-1);ans -= (query(1,N-1)-query(1,x)) - (query(0,N-1)-query(0,x))*x;add(0,x,-1);add(1,x,-x);
}
void solve(){cin>>n>>m;int block = sqrt(n);for(int i=1;i<=n;i++){cin>>a[i];g[i]=(i-1)/block+1;}for(int i=1;i<=m;i++){int l,r; cin>>l>>r;Q[i]={l,r,i};}sort(Q+1,Q+1+m);int L = 1 ,R = 0;for(int i=1;i<=m;i++){auto [l,r,id]=Q[i];while(L<l) del(L++);while(L>l) add(--L);while(R>r) del(R--);while(R<r) add(++R);res[id]=2*ans;}for(int i=1;i<=m;i++) cout << res[i] << endl;return ;
}

这样的话我们可以发现实际上维护的就是区间中小于这个数的数量,和小于这个数的和,可以知道树状数组就具有这个功能,但是对于多个区间如何操作,我们可以看到时间是4s,那么对于多个区间问题我们可以考虑使用莫队算法来优化本题

最后时间复杂度就是n\sqrt{n}*log(N)

M.让二追三

概率可以直接按照一次比赛打五次直接算出来,但是注意的是在n个比赛中,那么当n<5时是无解的,大于5的时候有n-4个符合题意的可以

LL qmi(LL a,LL b,LL p){LL res = 1;while(b){if(b&1) res=res*a%p;b>>=1;a=a*a%p;}return res;
}
LL inv(LL x){return qmi(x,mod-2,mod);
}
void solve(){int a,b,n; cin>>a>>b>>n;if(n<5){cout << 0 << endl;return ;}LL fm = qmi(b,5,mod);LL fz = qmi(b-a,2,mod)*qmi(a,3,mod)%mod;LL ans = fz%mod*inv(fm)%mod*(n-4)%mod; // 每次发生的概率是一样的// 就是cout << ans << endl;return ;
}

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

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

相关文章

NMACDR:基于邻居交互增强和多头注意力机制的跨域推荐模型

基于邻居交互增强和多头注意力机制的跨域推荐模型 湖北民族大学学报-孙克雷、汪盈盈-2023 思路 针对基于映射的跨域推荐模型没有充分关注源域中数据稀疏的用户,导致用户偏好的迁移效率降低的问题,提出本文。 首先,利用邻居用户的交互来增强源域中数据稀疏用户的交互序列,…

RS422一主多从MAX3490

RS422一主多从MAX3490 最近项目用到了RS422一主多从&#xff0c;一个主机4个从机。芯片用的MAX3490&#xff0c;几经折腾&#xff0c;最终只能从一拖4改为一拖2。 主机发送端&#xff0c;从机4个接收端都是正常的&#xff0c;没有问题。波形非常完美&#xff0c;没有太大变形 …

uni-segmented-control插件使用

dcloud插件市场 前端/uniapp 1.HBuildX打开目标项目 2.进入dcloud插件市场下载目标插件 3.看到如下提示(已经可以在目标项目中使用插件啦) 4.项目正式使用

自动驾驶占据感知的综述:信息融合视角

24年5月香港理工的论文“A Survey on Occupancy Perception for Autonomous Driving: The Information Fusion Perspective“。 3D 占据感知技术旨在观察和理解自动驾驶车辆的密集 3D 环境。该技术凭借其全面的感知能力&#xff0c;正在成为自动驾驶感知系统的发展趋势&#x…

JSPfilters过滤技术

1.创建动态web项目 2.创建filters的文件 3.创建主页面 4.配置xml项目 总结构 主页面代码 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%><!DOCTYPE html><html><head><meta cha…

idea2023.3.2版本全局设置maven地址

idea每次新建项目都默认使用了一个user目录下的地址&#xff0c;而不是自己安装的maven地址&#xff0c;每次创建项目后&#xff0c;都要重新从settings中设置一下maven地址。 可以全局修改&#xff1a;首先在File-->Close Project回到idea最开始的界面 然后在Customize里点…

C++语法|深入理解 new 、delete

在开发过程中&#xff0c;非常重要的语法就有我们new和delete&#xff0c;周所周知在C中最为强大的能力就是对内存的控制&#xff0c;所以我们再怎么强调new和delete都不为过 文章目录 1.new和delete基本语法new和malloc的区别是什么&#xff1f;(1)开辟单个元素的内存差别(2)开…

火遍全网的“当当狸智能激光雕刻机L1” 让创意梦想分分钟实现

当当狸首款“桌面级”智能激光雕刻机来袭&#xff0c;千万别错过。 龙年伊始&#xff0c;当当狸就迎来了新品首发——智能激光雕刻机L1。 话不多说&#xff0c;赶快来看~~ 当当狸这款智能激光雕刻机造型美观&#xff0c;设计时尚&#xff0c;堪称激光雕刻机界的颜值天花板~~ …

matlab使用1-基础

matlab使用1-基础 文章目录 matlab使用1-基础1. 界面介绍2. matlab变量3. matlab数据类型4. matlab矩阵操作5. matlab程序结构5.1 顺序结构5.2 循环结构5.3 分支结构 1. 界面介绍 命令行窗口输入&#xff1a;clc 可清除命令行窗口command window的内容 clc命令行窗口输入&…

独家揭秘:亲历清华大学答辩现场,惊喜万分 名校答辩不简单

会议之眼 快讯 五月&#xff0c;对于学术界来说&#xff0c;迎来了答辩的高潮&#xff01;是收获的季节&#xff01;今天&#xff0c;趁着阳光明媚&#xff0c;小编怀揣着对学术探索的无限热情和好奇心&#xff0c;决定亲自踏入中国顶尖学术殿堂——清华大学深圳国际研究生院&…

洁太司检测试剂盒:肝癌早诊新利器,共筑健康未来

随着科技进步及医疗技术的不断创新&#xff0c;人类对疾病的早期诊断和治疗提出了更高的要求。 先思达生物近期推出的“洁太司-寡糖链检测试剂盒”&#xff0c;在原发性肝细胞癌的诊断领域实现了重大突破&#xff0c;获得了国家药品监督管理局&#xff08;NMPA&#xff09;的三…

[牛客网]——C语言刷题day2

答案&#xff1a;B 解析&#xff1a; char *p[10] 是指针数组,数组里存放了10个指针,在64位系统下指针占8个字节,所以sizeof(p) 10 * 8 80. char (*p1)[10]是数组指针,p1是一个指向存放10个char类型的数组的指针,所以sizeof(p1) 8. 答案&#xff1a;B 解析&#xff1a…

【大道至简】官方兼容到android13+的获取系统屏幕高度, statusbar,navBar

android在屏幕高度和app高度&#xff0c;statusbar, navigationbar的高度处理上&#xff0c;迭代了好多版本。 android11&#xff0c; android12都有新的api和过时的api标记。 涉及的api类似如下&#xff1a; windowManager&#xff0c;defaultDisplay, Context.display, Deco…

分布式系统的一致性与共识算法(二)

Consitency 背景 如买最后一张车票&#xff0c;两个售票处分别通过某种方式确认过这张票的存在。这时&#xff0c;两家售票处几乎同时分别来了一个乘客要买这张票&#xff0c;从各自"观察"看来&#xff0c;自己一方的乘客都是先到的&#xff0c;这种情况下&#xf…

思科模拟器学习1--Vlan Trunk

实验说明&#xff1a;将三台电脑的vlan 加到一台交换机里面&#xff0c;为了验证什么是虚拟局域网&#xff0c;把一个设备隔成三个空间&#xff0c;三个电脑互相不能通讯&#xff1b;目的是&#xff1a;vlan 1的通讯不可以向vlan 2传送&#xff0c;就是消息传送互不干扰的&…

解决Android Studio Gradle下载慢的问题

安卓 gradle-7.5-bin.zip 下载慢 https://mirrors.cloud.tencent.com/gradle/7.x.x 找到对应匹配版本 把下载的文件直接复制到 C:\Users\Administrator.gradle\wrapper\dists\gradle-x.x\ 中对应版本目录下&#xff0c;例如需要下载 gradle-2.14.1-all.zip&#xff0c;则下载好…

【Pytorch】torch.nn.conv2d

这个函数和我们之前提到的【Pytorch】6.torch.nn.functional.conv2d的使用的作用相似&#xff0c;都是完成CV领域的卷积操作&#xff0c;这里就不在过多赘述 torch.nn.conv2d的使用 打开pytorch的官方文档&#xff0c;我们可以看到 torch.nn.conv2d包含了若干参数 in_channe…

一文读懂 Pencil 积分,打开 Pencils Protocol 生态权益大门

近日&#xff0c;Scroll 生态项目 Penpad 近期将品牌全新升级为 Pencils Protocol &#xff0c;在升级后&#xff0c;其从一个 Scroll 生态的原生 LaunchPad 平台进一步拓展为集 Staking、Vault 以及 Shop 等功能于一体的全新生态。全新的品牌升级不仅让 Pencils Protocol 生态…

2024 年第一季度全球互联网中断事件

2024 年第一季度伊始&#xff0c;互联网发生了多起中断事件。陆地和海底电缆的损坏在多个地方造成了问题&#xff0c;而与持续中地缘政治冲突相关的军事行动影响了其他地区的连接。 几个非洲国家以及巴基斯坦的政府下令关闭互联网&#xff0c;主要针对移动网络连接。 被称为Ano…

Pyqt中QThread传递自己定义的参数、类、函数

Pyqt中QThread传递自己定义的参数、类、函数 1 pyqt中Qthread传递自己定义的参数2 pyqt中Qthread传递自己定义的类3 pyqt中Qthread传递自己定义的函数4 pyqt中Qthread内部定义自己的函数5 pyqt中Qthread传递参数到内部定义自己的函数 1 pyqt中Qthread传递自己定义的参数 在PyQ…