HDU - 5145 NPY and girls

VGG_imagenet.npy vgg16的Imagenet模型,由于google背墙,特分享一份以备份。 立即下载

题目:有n个女生,每个女生都有一个教室,有m个询问[l,r],问你拜访该区间的女生的教室有多少种方案,对1e9+7取模

思路:num表示该教室的女生的人数,那么答案就是(r-l+1)!/(num1!*num2!....)

代码:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<numeric>
using namespace std;
#define PI acos(-1.0)
#define LL long long
#define ULL unsigned long long
#define INF 0x3f3f3f3f
#define mm(a,b) memset(a,b,sizeof(a))
#define PP puts("*********************");
template<class T> T f_abs(T a){ return a > 0 ? a : -a; }
template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }
template<class T> T lcm(T a,T b){return a/gcd(a,b)*b;}
// 0x3f3f3f3f3f3f3f3f
// 0x3f3f3f3f

const LL MOD=1000000007;
const int maxn=3e4+50;
struct Ask{
    int L,R,id;
}ask[maxn];
LL ans[maxn];
int arr[maxn],num[maxn];//从1开始计数
int n,m,siz;//n个数,m个询问,块的大小
LL Inv[maxn],F[maxn];
bool cmp(Ask a,Ask b){
    if(a.L/siz!=b.L/siz) return a.L/siz<b.L/siz;
    else return a.R<b.R;
}
void solve(){
    LL temp=1;
    mm(num,0);
    int L=1,R=0;
    for(int i=1;i<=m;i++){
        while(R<ask[i].R){
            R++;
            num[arr[R]]++;
            temp=temp*Inv[num[arr[R]]]%MOD;
        }
        while(R>ask[i].R){
            temp=temp*(LL)num[arr[R]]%MOD;
            num[arr[R]]--;
            R--;
        }
        while(L<ask[i].L){
            temp=temp*(LL)num[arr[L]]%MOD;
            num[arr[L]]--;
            L++;
        }
        while(L>ask[i].L){
            L--;
            num[arr[L]]++;
            temp=temp*Inv[num[arr[L]]]%MOD;
        }
        int x=ask[i].R-ask[i].L+1;
        ans[ask[i].id]=temp*F[x]%MOD;;
    }
}
int main(){

    int T;
    Inv[1]=1;
    F[0]=F[1]=1;
    for(int i=2;i<maxn;i++){
        Inv[i]=(LL)(MOD-MOD/i)*Inv[MOD%i]%MOD;
        F[i]=F[i-1]*(LL)i%MOD;
    }
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            scanf("%d",&arr[i]);
        for(int i=1;i<=m;i++){
            ask[i].id=i;
            scanf("%d%d",&ask[i].L,&ask[i].R);
        }
        siz=(int)sqrt(n*1.0);
        sort(ask+1,ask+m+1,cmp);
        solve();
        for(int i=1;i<=m;i++)
            printf("%lld\n",ans[i]);
    }
    return 0;
}


提升YOLOv8性能:用Swin Transformer替换Backbone的详细实现与分析【YOLOv8】 YOLOv8作为目标检测领域的最新版本,在速度和精度之间取得了良好的平衡。然而,随着计算机视觉任务的复杂性不断增加,YOLOv8的标准主干网络(Backbone)在处理高分辨率图像或多尺度目标时,可能存在一定的局限性。为了进一步提升YOLOv8的性能,我们可以引入Swin Transformer替换其主干网络,以增强模型的全局感知能力和多尺度特征提取能力。本文将详细介绍如何在YOLOv8中用Swin Transformer替换原有的Backbone,提供代码示例,并深入探讨其中的原理和效果。 阅读详情

相关推荐

常见的数值积分方法 (欧拉、中值、龙格-库塔,【常用于IMU中】)

1. 积分基本概念 设F(x)为函数f(x)的一个原函数,我们把函数f(x)的所有原函数F(x)+C(C为任意常数)叫做函数f(x)的不定积分(indefiniteintegral)。 非线性微分方程: 在有限的时间间隔Δt积分: 连续时间内积分: 工程上最常见的有三种:欧拉积分(Euler method)、中值积分(Midpoint method)和龙格-库塔法积分(Runge–Kutta methods)。他们的区别就是如何用数值方法模拟一个斜率。这里简单总结如下: ...

努力努力努力 2万+

hdu5145(莫队算法+组合数逆元)

借鉴了一位大佬的思路:https://www.cnblogs.com/HDUjackyan/p/8996172.html 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5145 题意:一个人有n个女朋友,每个女朋友都有一个班级a[i],现有m个询问。每个询问有一个区间范围[L,R],表示这个人想要约[L,R]范围内的女生有几种约法。(第L个女生到...

行云出岫 438

【机器人开发】四足机械狗(并联结构)URDF建模与Simscape仿真全流程解析

本文详细解析了四足机械狗(并联结构)从URDF建模到Simscape仿真的全流程开发。内容涵盖SolidWorks建模要点、URDF文件导出与优化、Matlab/Simscape环境搭建,以及并联机构特有的运动控制和步态规划实现,为机器人开发者提供了一套完整的解决方案。

weixin_30642561的博客 527

HDU - 5145 NPY and girls 莫队算法+逆元

题目链接:https://cn.vjudge.net/problem/HDU-5145 题意:区间[l, r] 内的数全排列能得到多少种不同的排列 题解:假设sum是当前的数量,再加上一个就是乘上sum+1,乘上这个数+1 的数量的逆元,减去一个是乘上sum的逆元,乘上这个数的数量 #include<bits/stdc++.h> using namespace std; typ...

还我笑颜 223

课程复习---分析空间数据的细胞空间关系(python版本的mistyR)

课程复习---分析空间数据的细胞空间关系(python版本的mistyR)

weixin_53637133的博客 1220

Verilog中generate for循环的5个实战技巧(附完整代码示例)

本文详细介绍了Verilog中generate for循环的5个高级实战技巧,包括参数化模块实例化、条件化生成、多维硬件结构实现等,并附有完整代码示例。这些技巧能显著提升FPGA开发效率,特别适合中级Verilog开发者学习应用。

weixin_28725949的博客 187

HDU - 5145 莫队+乘法逆元

http://acm.hdu.edu.cn/showproblem.php?pid=5145 (题目连接)给出一个数列,每次求一个区间数字的非重排列数量。答案对1e9+7取模。每次往里加入一个新的数字或者减去一个新的数字,前后的排列数目是可以通过乘除转移。答案要求取模,在用除法的时候要用到逆元,需要离线处理。#include &lt;bits/stdc++.h&gt; using namespa...

XFire的博客 300

无人机WIFI集群组网技术详解及成本分析

无人机WIFI集群组网技术是指利用无人机作为移动平台,通过集成高性能的WIFI模块,实现多架无人机之间以及无人机与地面控制站之间的无线通信组网。在协议层面,无人机WIFI集群组网需要遵循标准的无线通信协议,如IEEE 802.11系列(即WIFI标准),同时可能还需定制或优化路由协议、媒体访问控制(MAC)协议等,以确保高效、可靠的数据传输。数据安全与隐私保护:无人机集群组网中传输的数据可能涉及敏感信息,需采取加密、认证等安全措施,确保数据传输的安全性和用户隐私的保护。根据性能不同,价格差异较大。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1582

hdu5145 (莫队+逆元)

题意:拜访n个女生,每个女生属于一个班级,每次只能访问一个班的一个女生,问访问所有女生有多少种顺序(顺序指的是班级顺序) 假设有n个女生,分别属于m个班级,每个班级有num(i)个女生,那么访问的种数就是n!/(num1!*num2!*...numm!), 假设区间缩小,第m个班女生少了一个的话结果就是原来的结果乘上numm / n 这里涉及到除法需要用到逆元 (a/b) % p == a*b...

bpdwn2017的博客 464

uniapp - HBuilder提示adb: failed to install X Failure [INSTALL_ARSE_FAILED_NOT_APK:X(安装HBuilder调试基座失败)

安装HBuilderX调试基座失败,uniapp APP运行到手机adb: failed to install,Uniapp提示adb,uniapp ios 真机调试报错 uniapp安卓调试,Uniapp安装不了基座,手动安装基座,正在安装手机端HBuilder调试基座,点击运行到手机报错信息:基座无法正常安装,Uniapp-安装HBuilder调试基座失败解决方案,解决 HBuilderX 安卓基座安装失败的问题,显示adb报错,UniApp苹果真机运行调试(自定义基座,版本更新后/没有基座打开失败)如

🏆 前端领域优质创作者 8061

从零搭建:C#+YOLOv8质检系统(从相机选型到上位机部署,附完整开发流程与源码)

后来换成45°斜射的条形光源,光线从侧面打在引脚上,弯曲处会形成暗区,缺陷边缘立刻清晰——光源预算别省,我这套光源+支架才600块,比换相机划算多了。前阵子帮一家电子厂做连接器引脚缺陷检测,他们原来靠2个师傅用放大镜看,每天8小时最多检5000个,0.2mm的针脚弯曲还经常漏检,不良品流到客户那里,单月罚款就超5万。做质检第一步不是挑设备,是先明确“要检测多大的缺陷”——比如我要检的连接器引脚,直径0.5mm,允许的最大弯曲是0.2mm,这直接决定相机分辨率。,后面C#就用这个模型推理。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1267

HDU - 5145

题目链接:HDU - 5145 题目链接:HDU - 5145 首先推区间公式:假设有3种班级,个数分别为a,b,c。 所以贡献为:C(n,a)*C(n-a,b)*C(n-a-b,c) = n!/(a!*b!*c!)。 显然我们可以用莫队维护分母。然后就做完了。 AC代码: #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h> #define int long long using na

青烟绕指柔的博客 526

使用 Simulink + Simscape Electrical 搭建一个三相PWM整流器模型

本文详细介绍了使用Simulink搭建三相PWM整流器模型的方法,重点讲解了SVPWM调制策略的实现过程。内容包括系统结构设计、主电路搭建、SVPWM算法实现、双闭环控制器设计以及仿真分析。通过MATLAB Function Block实现SVPWM核心算法,并给出优化建议,如死区补偿、开关频率优化等。该教程为电力电子领域工程师提供了实用的建模与仿真方法,可用于新能源并网、电机驱动等应用场景的研发与优化。

amy_mhd的博客 195

HDU 5145 NPY and girls 莫队 + 组合数 + 逆元

HDU 5145 NPY and girls 题意: 给出n个女生所在的教室,求 在区间范围内 每次拜访一个人有多少种不同的拜访顺序 例如:1 2 1(有三种顺序) 1 2 1,1 1 2,2 1 1 思路: 思路转自博客:https://blog.youkuaiyun.com/LinzhiQQQ/article/details/77855018 我们继续根据上面的那个例子来找规律。 当...

没有梦想何以远行 197

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【HDU 5145】 NPY and girls(组合+莫队)

【HDU 5145】 NPY and girls(组合+莫队) NPY and girls Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 593    Accepted Submission(s): 179

ACMer' 2336

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

hdu5145 NPY and girls

人生中第一道莫队,本来以为是一道水题的。。 首先这题只有区间查询,没有修改操作,使用莫队比较明显,但统计答案有点麻烦。。 根据题意,在n个人里选m个不相同种类的人,设第i种人数量为ai,总方案为c(n,a1)*c(n-a1,a2)*c(n-a1-a2,a3)*...*c(n-a1-a2-...-an-1,an)。而我们要用O(1)的复杂度实现转移,那么我们可以用c(n,m)=c(n-1,m-1

wfj_2048的博客 716

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【HDU】5145 NPY and girls 【分块】

传送门:【HDU】5145 NPY and girls 题目分析:裸分块- -,太久没写了,导致比赛时写错两个地方,交了13发,顺利拿到底线分- - 对于区间【L,R】,假设有不同的教室分别有数量a1,a2,a3,……,ak那么方案数即C(R - L + 1,a1)*C(R - L + 1 - a1,a2)*C(R - L + 1 - a1 - a2,a3)*……*C(R - L +

poursoul 1480

HDU 5145 NPY and girls (莫队分块离线)

题目地址:HDU 5145 莫队真的好神奇。。这样的复杂度居然只有n*sqrt(n)。。。 裸的莫队分块,先离线,然后按左端点分块,按块数作为第一关键字排序,然后按r值作为第二关键字进行排序。都是从小到大,可以证明这样的复杂度只有n*sqrt(n)。然后进行块之间的转移。 代码如下:#include <iostream> #include <string.h> #include <math.h

scf0920 1394

hdu5145NPY and girls

NPY and girls Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 604    Accepted Submission(s): 182 Problem Description NPY's girlfrie

_zidaoziyan的博客 610

【HDU 5145】NPY and girls

算法标签:莫队+逆元

forever_dreams的博客 886

HDU 5145 NPY and girls 莫队+多重集排列

HDU 5145 题意:给出长度为n的序列a,m次询问:给出[L,R],为a[L],a[L+1]..a[R]组成的集合的排列方案是多少? n,m,a[i] 每次询问的是多重集的排列方案? 回顾一下:[L,R]有k种不同数字 n1+n2+.nk=n 则假设排列方案为x 容易列出x*n1!*n2!..nk!=n!得x=n!/(n1!*..nk!). 容易知道增加和删除一个数以后答案的变化

noone0的博客 290

hdu 5145 NPY and girls

Problem Description NPY’s girlfriend blew him out!His honey doesn’t love him any more!However, he has so many girlfriend candidates.Because there are too many girls and for the convenience of managem...

天翼之城的博客 754

Hdu 5145 NPY and girls

#include #include #include #include using namespace std; #define LL long long const int maxn = 31234; const LL mod = 1000000007; struct Ask{ int l,r; int id; LL ans; void init(int i

lambda QAQ 1531

NPY and girls-HDU5145莫队算法

Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem DescriptionNPY’s girlfriend blew him out!His honey doesn’t love him any more!However, he has so many girlfr

绝尘 1618

HDU 5145 NPY and girls (莫队算法)

题目: LINK 题目给定一个长度为n的序列,给出m个查询,[L,R],求区间内重排的个数。计算很简单 (R - L -1)! / (II 每个相同数字个数的阶乘) 即使裸着排序,递推会TLE。 可以使用莫队算法,分块的写法比较简单。 这样写就是分块,每一块的大小为sqrt(n),L按照块号排序,之后按照R排序。之后的写法和之前写的一样。 我自己估算的这样搞的复杂度约为 O(m*sqrt

Napoleon 1082
上一篇: CodeForces - 86D Powerful array
下一篇: HDU - 4638 Group
我不会额
博客等级 码龄11年 2粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值