洛谷 P1494 [国家集训队] 小 Z 的袜子 题解 莫队

​​EMC设计实战:BCI(大电流注入)硬件设计规范 LIN接口:集成TVS管(如PESD5V0S1BL)与共模电感,耐压等级≥20V(8kV HBM)。输入滤波:10μF电解电容(100kHz截止)+ 0.1μF陶瓷电容(10MHz截止)。​:全频段(1MHz-400MHz)注入200mA电流,LIN通信误码率<0.01%。对敏感电路(如传感器)采用隔离电源(如ADuM5000),隔离电压≥3kVrms。​:连续波(CW)与调幅波(AM,调制深度80%)组合,覆盖全频段干扰场景。​:选择低频段(1-100MHz)感量≥100μH的绕线电感,抑制共模电流。 阅读详情

[国家集训队] 小 Z 的袜子

题目描述

作为一个生活散漫的人,小 Z 每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小 Z 再也无法忍受这恼人的找袜子过程,于是他决定听天由命……

具体来说,小 Z 把这 N N N 只袜子从 1 1 1 到 N N N 编号,然后从编号 L L L 到 R R R 的袜子中随机选出两只来穿。尽管小 Z 并不在意两只袜子是不是完整的一双,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。

你的任务便是告诉小 Z,他有多大的概率抽到两只颜色相同的袜子。当然,小 Z 希望这个概率尽量高,所以他可能会询问多个 ( L , R ) (L,R) (L,R) 以方便自己选择。

然而数据中有 L = R L=R L=R 的情况,请特判这种情况,输出0/1。

输入格式

输入文件第一行包含两个正整数 N N N 和 M M M。 N N N 为袜子的数量, M M M 为小 Z 所提的询问的数量。接下来一行包含 N N N 个正整数 C i C_i Ci​,其中 C i C_i Ci​ 表示第 i i i 只袜子的颜色,相同的颜色用相同的数字表示。再接下来 M M M 行,每行两个正整数 L , R L, R L,R 表示一个询问。

输出格式

包含 M M M 行,对于每个询问在一行中输出分数 A / B A/B A/B 表示从该询问的区间 [ L , R ] [L,R] [L,R] 中随机抽出两只袜子颜色相同的概率。若该概率为 0 0 0 则输出 0/1,否则输出的 A / B A/B A/B 必须为最简分数。(详见样例)

样例 #1

样例输入 #1

6 4
1 2 3 3 3 2
2 6
1 3
3 5
1 6

样例输出 #1

2/5
0/1
1/1
4/15

提示

30 % 30\% 30% 的数据中, N , M ≤ 5000 N,M\leq 5000 N,M≤5000;

60 % 60\% 60% 的数据中, N , M ≤ 25000 N,M \leq 25000 N,M≤25000;

100 % 100\% 100% 的数据中, N , M ≤ 50000 N,M \leq 50000 N,M≤50000, 1 ≤ L ≤ R ≤ N 1 \leq L \leq R \leq N 1≤L≤R≤N, C i ≤ N C_i \leq N Ci​≤N。

原题

洛谷P1494——传送门

代码

#include <bits/stdc++.h>
using namespace std;
#define max_Heap(x) priority_queue<x, vector<x>, less<x>>
#define min_Heap(x) priority_queue<x, vector<x>, greater<x>>
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;
typedef pair<long long, long long> PLL;
const double PI = acos(-1);

const int maxn = 1e5 + 6;

int cnt[maxn];  //记录相同颜色袜子的个数
ll ans[maxn], ans2[maxn];   //ans[]记录分子,ans[]记录分母
int sum;    //sum维护当前选取两只相同颜色袜子的方案数

int a[maxn], n, q, bl, curL = 1, curR = 0;
// bl是分块数量,a[]是原序列,n表示数组大小,q表示询问个数。
void add(int pos) // 添加
{
    sum += cnt[a[pos]]; //每增加一个,从中选取两个的方案数就要加上增加之前的个数
    cnt[a[pos]]++;
}
void del(int pos) // 去除
{
    cnt[a[pos]]--;
    sum -= cnt[a[pos]]; // 每减少一个,从中选取两个的方案数就要减去减少之后的个数
}

struct query    //询问的结构体
{
    int l, r, p;
} e[maxn];

bool cmp(query a, query b)
{
    // 记得在主函数中对bl赋值(bl=sqrt(n))
    return (a.l / bl) == (b.l / bl) ? a.r < b.r : a.l < b.l;
}

int gcd(int a, int b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}
/*
 while (curL < l)del(curL++);
 while (curL > l)add(--curL);
 while (curR < r)add(++curR);
 while (curR > r)del(curR--);
*/

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin >> n >> q;
    bl = sqrt(n);
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    for (int i = 1; i <= q; i++)
    {
        cin >> e[i].l >> e[i].r;
        e[i].p = i;
    }
    sort(e + 1, e + 1 + q, cmp);
    for (int i = 1; i <= q; i++)
    {
        int l = e[i].l;
        int r = e[i].r;
        int p = e[i].p;
        //莫队四循环
        while (curL < l)
            del(curL++);
        while (curL > l)
            add(--curL);
        while (curR < r)
            add(++curR);
        while (curR > r)
            del(curR--);
        int len = r - l + 1;
        // zong计算的是从区间中选两只袜子的方案数,而sum维护的是从区间中选两只颜色相同袜子的方案数
        ll zong = 1ll * len * (len - 1) / 2;    //十年OI一场空,不开longlong见祖宗
        if (len == 1)
        {
            //特判L=R的情况(题目中有特别说明)
            ans[p] = 0;
            ans2[p] = 1;
        }
        else
        {
            //化成最简分数
            ll yin = gcd(sum, zong);
            ans[p] = sum / yin;
            ans2[p] = zong / yin;
        }
    }
    for (int i = 1; i <= q; i++)
    {
        cout << ans[i] << '/' << ans2[i] << '\n';
    }

    return 0;
}
DSP复习笔记(5)——外部接口模块XINTF 【注意】 1. 芯片型号:TMS320F28335 2. 适用于NJUSTEO李彧晟老师课程 3. 参考资料:《TMS320F28335 DSP原理、开发及应用》 4. 对应PPT第二章 5. 本章内容较多而且较为重要,请结合PPT一起复习 阅读详情

相关推荐

手把手教你用Deep Single-Image Portrait Relighting实现人像光影重塑(附GitHub代码)

本文提供了一份详细的实战指南,手把手教你利用Deep Single-Image Portrait Relighting技术实现人像光影重塑。文章从环境搭建、核心原理拆解出发,逐步指导构建简易重光照流程,并探讨了使用预训练模型进行效果优化的进阶方法,最后附上避坑指南与常见问题排查,帮助开发者快速上手这一AI图像处理技术。

weixin_29065015的博客 315

小Z的袜子(hose) (莫队算法入门)

小Z的袜子(hose)   作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小Z,...

yiyiLy的博客 2130

arduino uno spi驱动12864

arduino uno spi驱动12864

yvee的博客 2060

小Z的袜子(分块,莫队)

题目链接 作为一个生活散漫的人,小 Z 每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。 终于有一天,小 Z 再也无法忍受这恼人的找袜子过程,于是他决定听天由命。 具体来说,小 Z 把这 NNN 只袜子从 111 到 NNN 编号,然后从编号 LLL 到 RRR 的袜子中随机选出两只来穿。 尽管小 Z 并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小 Z,他有多大的概率抽到两只颜色相同的袜子。 当然,小 Z

m0_51864047的博客 237

Python海康摄像头SDK二次开发

摘要:为解决海康威视摄像头RTSP拉流延迟严重的问题,本文提出改用海康私有SDK直接取流的方案。通过下载海康设备网络SDK并调用其Python接口,实现了低延迟的视频流获取。文中详细介绍了SDK配置流程,并提供了优化版的Python代码示例,重点解决回调函数处理、队列缓冲和CPU占用等问题。测试结果表明,该方案显著降低了延迟,同时保持了较高的帧率(30FPS以上)和较低的CPU占用率(约2%)。相较于传统OpenCV+FFmpeg的RTSP方案,海康SDK直接取流在实时性方面具有明显优势。

xiaohouzi112233的博客 2608

【全网最新】使用 1panel面板 部署若依系统( springboot 和 vue)项目

打开前端项目的vue.config.js文件,检查devServer下的proxy代理部分,然后将下面这个端口修改为你要在打包后访问的端口,即使用nginx代理前的接口。这个端口默认是80端口,这里把其修改为不会冲突的8010端口,后台接口的地址配置为9080,不过感觉这里设置的8010和9080可能没有用,因为部署前端静态页面是,也配置了一次网页的外部接口和api的接口,后期有空了再验证。打开右侧的Maven,点击:生存期->package,然后点击运行,等待打包成功,包在如图所示的文件夹中。

老薛的专栏 1755

P1494 [国家集训队] 小 Z 的袜子

莫队

Hardy_Lee的博客 217

squidpy 教程 1:在 AnnData 和 Squidpy 中导入空间数据

这些是 10x Genomics Visium 的 Space Ranger 输出提供的 keys,因此是第一个被采用的 keys。在这种情况下,我们假设空间坐标与像素具有相同的比例,因此我们将该值设置为 1。为此,我们将使用模拟数据集,并通过示例展示您应该注意的重要细节,以便利用 AnnData-Scanpy-Squidpy 生态系统的全部功能。并不是绝对必要的,但会节省您大量的输入,因为它是 Squidpy 和 Scanpy 的默认值。正如你所看到的,空间坐标被缩小了,图像被“放大”了。

🧑‍🎓 博士研究生在读 🔬 分享生物信息学、神经生物学方面的知识 💬 合作请在后台留言 2255

洛谷P1494 [国家集训队] 小 Z 的袜子题解(莫队)

P1494 [国家集训队] 小 Z 的袜子题解(莫队)

m0_61306299的博客 669

光致发光(Photoluminescence, PL)入门版

关于光致发光的实际应用做出一些解释。

sinat_40546227的博客 1万+

解决【x2openEuler环境检查未通过——CheckRepoCurlActor不通过】问题

摘要:x2openEuler使用默认repo源时出现环境检查失败问题,原因是默认源返回308永久重定向错误。解决方法包括:1)为CentOS主机配置华为yum源;2)在x2openEuler Web界面修改为自定义可用源。具体步骤包括备份原源、下载华为源、清除缓存,并通过curl测试确认新源可用性。最终成功配置openEuler-24.03-LTS-SP1版本的repo源后,环境检查顺利通过。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 258

【BZOJ2038】【莫队】小z的袜子

Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。你的任务便...

Gregory99174的博客 281

【网络安全】浅谈数据库攻击复现及相关安全优化

4、准备数据库服务器为了安全正式环境应该把数据库单独放一台服务器,只允许让应用服务器 IP 来访问数据库服务器,通过独立两者,就算其中一台发生问题,另一台也是好的,进一步降低了危险性。5、定时备份数据库开发定时备份功能,可以使用 Crontab,或者其他框架,设定周期备份数据,哪怕是数据丢失或被删除也可以快速恢复。

2401_88545587的博客 221

洛谷P1494 [国家集训队]小Z的袜子 莫队

题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小Z,他有多大的概率抽到两只...

The_OIer的博客 2714

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

洛谷 P1494 [国家集训队]小Z的袜子 莫队

洛谷 P1494 [国家集训队]小Z的袜子 题意 离线询问区间 [l,r][l,r][l,r] 内随机抽取两个数恰好相同的概率。(维护相同数字对数) 解法 莫队 答案 $ans=(\sum A2_{cnt[i]})/A{2}_{len} $ ,其中 len=r−l+1len=r-l+1len=r−l+1 表示区间的长度。 可以通过 cntcntcnt 数组 O(1)O(1)O(1) 转移答案,把原来的分子的贡献减掉,加上新的贡献即可。 代码 #pragma region #include <alg

bandiaoz的博客 177

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

P1494 [国家集训队] 小 Z 的袜子 Solution

P1494 [国家集训队] 小 Z 的袜子 Solution

pystraf的博客 857

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

P1494 [国家集训队] 小 Z 的袜子(离线莫队)

N 为袜子的数量,M 为小 Z 所提的询问的数量。接下来一行包含 N 个正整数 Ci​,其中 Ci​ 表示第 i 只袜子的颜色,相同的颜色用相同的数字表示。具体来说,小 Z 把这 N 只袜子从 1 到 N 编号,然后从编号 L 到 R 的袜子中随机选出两只来穿。尽管小 Z 并不在意两只袜子是不是完整的一双,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。你的任务便是告诉小 Z,他有多大的概率抽到两只颜色相同的袜子。100%的数据中,N,M≤50000,1≤L

cgj0128_1的博客 879

洛谷 P1494 [国家集训队]小Z的袜子 题解

洛谷 P1494 [国家集训队]小Z的袜子 题解 题目:在此。 考虑贡献。 一段区间是(l,r)(l,r)(l,r),那么总选择数是Cr−l+12C^2_{r-l+1}Cr−l+12​。 设有kkk个不同颜色,第iii个有aia_iai​次,那么这一个的贡献是Cai2C_{a_i}^2Cai​2​。 所以答案为∑Cai2Cr−l+12\frac {\sum C_{a_i}^2}{C_{r-l+1}^2}Cr−l+12​∑Cai​2​​。 莫队维护Cai2C_{a_i}^2Cai​2​。 具体,假设某种颜色原

linweitong2020的博客 219

luogu P1494 [国家集训队]小Z的袜子

背景: luoguluoguluogu智能推荐的,国家集训队水题。 题目传送门: https://www.luogu.org/problemnew/show/P1494 题意: 求一段区间任选两个数(有顺序)相等的概率。 思路: 很裸的莫队啊。 考虑每一次当前这一个数多一或少一对答案的贡献即可。 在草稿本上推推即可。 代码: #include&lt;cstdio&gt; #incl...

zsyz_ZZY的博客 319

洛谷P1494 【[国家集训队]小Z的袜子】

纪念自己独立完成的一道省选题(菜鸡如我只会看题解qwq) 还算是一道比较裸的莫队题把,比有的题目简单很多,也很好想怎么O(1)转移,比别的题就多了一个组合数计算(还有gcd??),还没算%意义下,也是很良心了 int get(int x){ if(x&lt;=1)return 0; return (int)(1.0*x*(x-1)*1.0/2.0); } 直接获得当前的可能情况。 然后就是莫...

pubgoso的博客 298

洛谷P1494 [国家集训队]小Z的袜子(莫队)

从总的袜子数中任意选取 2 个作为分母,再从任意颜色相同的袜子数中选取 2 个,可以先与处理一下,这样每次更新减去上一次的值,在加上这一次的值。 虽然数据量不大,但是预处理的时候会爆 int ,累加答案的时候也会爆,所以采用 long long const int N=5e4+5; int i,j,k; int n,m,t; int a[N]; int num,block,bel[N]; struct Node { i...

C_Dreamy的博客 421

【luogu P1494 [国家集训队]小Z的袜子】 题解

题目链接:https://www.luogu.org/problemnew/show/P1494 #include <cstdio> #include <algorithm> #include <iostream> #include <cmath> using namespace std; const int maxn = 50000+1...

198

P1494 [国家集训队]小Z的袜子

https://www.luogu.org/problemnew/show/P1494 #include <cstdio> #include <algorithm> #include <cmath> using namespace std; typedef long long ll; ll a[50010]={0}; ll vis[50010]={0}; ll ...

NOIP提高组日志 150

洛谷 P1494 [国家集训队]小Z的袜子(经典莫队)

传送门 听说本题是莫队(提莫队长!?)创始人曾经出过的原版莫队题,在简单了解莫队后这题确实经典 题目大意 给出一个序列,然后有若干次查询,每次查询输出从一个区间[l,r][l,r][l,r]内选出相同的两个数的概率是多少? 分析 假设区间内不同的数的个数分别为al,al+1,al+2,...,ara_l,a_{l+1},a_{l+2},...,a_ral​,al+1​,al+2​,...,ar​,根据排列组合的思想,设区间长度为lenlenlen(实际上就是袜子的总数),答案很显然:∑i=lrCai2Cl

Happig的博客 259

洛谷 P1494:[国家集训队] 小 Z 的袜子 ← 基础莫队算法

莫队算法竞赛标准写法:先扩张,再收缩,保证不会在空区间删除元素。

hnjzsyjyj的专栏 234

洛谷 P1494 [国家集训队] 小Z的袜子

题目概述: 小Z把N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小Z,他有多大的概率抽到两只颜色相同的袜子。当然,小Z希望这个概率尽量高,所以他可能会询问多个(L,R)以方便自己选择。 图片为本人原创 然后考虑莫队 会发现当\(cnt[i]-...

dengpailuo0807的博客 142
上一篇: 洛谷 P3901 数列找不同 题解 莫队
下一篇: Codeforces Round 938 Div.3 H. The Most Reckless Defense 题解 状压dp
bbc_ouo
博客等级 码龄3年 2096粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值