nowcode 逆序对

ChatGPT高效制作PPT:从内容生成到设计优化全流程 人工智能技术正在改变传统办公文档的创作方式,其中自然语言处理(NLP)与生成式AI的结合为内容创作带来了革命性突破。以ChatGPT为代表的大语言模型(LLM)能够理解复杂指令并生成结构化内容,其核心原理是通过海量数据训练获得的语义理解和文本生成能力。在办公自动化场景中,这种技术特别适合解决PPT制作中的两大痛点:内容创作耗时和逻辑架构困难。通过精心设计的提示词工程,AI可以快速输出包含核心要点、数据支撑的完整内容框架,甚至直接生成Markdown格式的代码以便快速转换为PPT。对于商业计划、项目汇报等高频 阅读详情

题目

链接:https://ac.nowcoder.com/acm/problem/14731
来源:牛客网

求所有长度为n的01串中满足如下条件的二元组个数:
设第i位和第j位分别位ai和aj(i<j),则ai=1,aj=0。
答案对1e9+7取模。

输入描述:
输入一个n。

输出描述:
输出答案对1e9+7取模

示例1

输入
3
输出
6

说明
在这里插入图片描述

备注:
n <= 10^18

思路

n数据可以很大,应该考虑推出公式直接求出答案
根据题意,首先假设出一个长度适当的01串,试着求出符合条件的二元组数,可以发现为,每一位是0的前面1的数量求和,或者每一位是1,后面0的数量求和.

这里我们对第i位是0时对答案的贡献进行讨论,
对于长度位n的字符串并且第i位是0的字符串,他前面1的数量一共有(i-1) * 2^(i-1) / 2(每一位是0或1,共有2^(i-1)种可能,每种可能有(i-1)个字符,1的字符占一半)
所以1的数量有(i-1)*2^(i-2)
第i位后面无论是什么,都不会对第i位的0的贡献产生影响,所以要再乘上后缀的 n-i个字符的所有可能 就是 *2^(n - i)

所以第i位0,对答案的贡献是(i-1)2^(n-2) 。
i从2~n求和得到 ans = n
(n-1)*2^(n-3)

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll mod = 1e9 + 7;
ll fun(ll x,ll y){
    ll f = x;
    x = 0;
    while(y){
        if(y&1)
            x  = (x + f) %mod;
        y >>=1;
        f = (f + f)%mod;
    }
    return x;
}

ll qqow(ll x){
    ll f = 2;
    ll ans = 1;
    while(x){
        if(x&1)
            ans = fun(ans,f)%mod;
        x>>=1;
        f = fun(f,f)%mod;
    }
    return ans;
}

int main(){
    ll n;
    cin >> n;
    ll ans;
    
    if(n <= 1){
        cout << 0;
        return 0;
    }
    if(n == 2){
        cout << 1;
        return 0;
    }
    
     ans=(n%mod)*((n-1)%mod)%mod*qqow(n-3)%mod;
    //ans = fun(fun(n,n-1),qqow(n-3));
    cout << ans << endl;
    return 0;
}
【AN7581】AN7581 SDK编译环境搭建操作说明 安装编译需要的工具包。 阅读详情

相关推荐

Xilinx HydraMini试玩教程

HydraMini是Xilinx推出的基于Pynq-Z2开发板的自动驾驶开发小车,其有着简单易学、高灵活性、高扩展性、高性能等优良特性,是研究人员和学生进入自动驾驶领域的一个平台。本教程会通过最基础的讲解和步骤带领读者熟悉这个平台的基本开发流程。

qq_25762163的博客 1773

NO.66十六届蓝桥杯备战|基础算法-贪心-区间问题|凌乱的yyy|Rader Installation|Sunscreen|牛栏预定(C++)

按照区间「左端点从⼩到⼤」排序,当两个区间「重叠」的时候,为了后⾯能够「尽可能多的选出互相重叠的区间」,我们应该把「区间范围较⼤」的区间移除,因为选择较⼤区间会造成选出来的区间「不是互相重叠」的。从前往后依次⽐较「贪⼼解」和「最优解」针对每⼀个区间的决策,当找到第⼀个区间,它们的「分配决策不同」时:设贪⼼解⽤的是a防晒霜,最优解⽤的是b防晒霜,因为贪⼼解选的是最⼩的,所以有。为了能够「在移除某个区间后,保留更多的区间」,我们应该把「区间范围较⼤」的区间移除。第一个区间选了a之后,b这个点就没办法分配了。

ChoSeitaku的博客 970

vivado 编译ADI AD9361 TCL脚本生成hdl工程

(4)输入"source ../../scripts/adi_make.tcl"命令(仅双引号内部命令,不包含双引号),个人理解:该命令用来加载当前所需要编译工程所需要各功能模块的信息,因为每个工程需要不同的功能模块,比如有的需要gpio模块,有的不需要gpio模块,这些模块上前面路径的library也同样以TCL脚本形式存在,当有需要时才进行编译,怎么知道当前工程需要什么模块呢就是通过"source ../../scripts/adi_make.tcl"(仅双引号内部命令,不包含双引号)命令实现。

weixin_40586423的博客 808

[Offer收割]编程练习赛45--互补二元组,寻找切线

时互补二元组: 间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定N个整数二元组(X1, Y1), (X2, Y2), ... (XN, YN)。   请你计算其中有多少对二元组(Xi, Yi)和(Xj, Yj)满足Xi + Xj = Yi + Yj且i 输入 第一行包含一个整数N。   以下N行

maozhengxiang的博客 543

别再只画GO图了!用R语言+Perl脚本搞定单细胞KEGG富集分析与圈图(附完整代码)

本文详细介绍了如何利用R语言和Perl脚本实现单细胞KEGG富集分析全流程,从基因ID转换到专业圈图可视化。通过对比KEGG与GO分析的互补价值,提供完整的代码实现和优化技巧,帮助研究者高效完成单细胞测序数据的通路分析,并生成高质量的圈图展示结果。

weixin_28694169的博客 405

Stata面板数据OLS回归分析实战指南

OLS回归作为计量经济学的核心分析方法,通过最小化残差平方和实现参数估计,广泛应用于经济学实证研究。其技术价值在于模型简洁、结果易于解释,特别适合处理面板数据中的复杂关系。在实际应用中,配合robust标准误能有效解决异方差问题,而固定效应模型则可控制个体特异性。本文以Stata软件为例,详细演示从数据导入、描述性统计到混合OLS和固定效应模型构建的全流程,重点解析面板数据特有的格式设定、模型选择标准以及结果呈现技巧,为经济学研究者提供可直接复用的分析框架。

weixin_29051811的博客 268

nowcode——明明的随机数

#include <stdio.h> int main() { int inputArray[1001]; int n; int tmp; while(scanf("%d",&n)!=EOF) { for (int i = 0; i<1001; i++) { inputArray[i] = 0; ...

qq_42067893的博客 615

国家医保移动支付国密算法SM2签名验签、SM4加解密DLL

DLL,非.net开发,所以无需安装配置,直接程序引用开发即可,支持各类开发语言。已知省份有广西、贵州、安徽、河北、黑龙江、湖南、吉林、江苏、四川、新疆等各地方。国家医保移动支付国密算法SM2签名验签、SM4加解密DLL。//SM4加密与解密。支持医保移动支付(国家统一版),//SM2签名与验签。

4265

nowCode上sql练习

总起:常用高级sql回忆总结。(写了一年的前端,得练练手额) join: MySQL 数据库不支持 SELECT … INTO 语句,但支持 INSERT INTO … SELECT 。 1,查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL comment '员工编号', `birth_date` date NOT NULL, `first_name` var

weixin_42603009的博客 276

人工智能智能体研究综述:从理论架构到前沿应用

AI Agent,即人工智能智能体,是指能够在特定环境中自主感知、推理、决策并执行行动以实现特定目标的智能系统[1]。自主性反应性主动性(Pro-activeness)和社会性fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;AI Agent核心特征自主性 Autonomy反应性 Reactivity主动性 Pro-activeness。

nmdbbzcl的博客 903

5G RF前端架构为什么越来越复杂?从8天线、MIMO、ET、DRX到ACLR/EVM彻底拆开

AdjacentChannelLeakageRatioAdjacentChannelLeakageRatio主信道的功率,有多少泄漏到了隔壁Channel。ACLRPAdjacentPMainACLR=ACLRPMain​PAdjacent​​通常以dBc表达。

weixin_43199439的博客 47

nowcode-学会删除链表中重复元素两题(详解)

目录前言一、删除链表中重复节点题的链接题目描述题目思路删除链表中重复的元素题链接题目描述题目思路总结 前言 ????‍????路还长 一、删除链表中重复节点题的链接 题目描述 删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次 例如: 给出的链表为1→1→2,返回1→ 2. 给出的链表为1→1→2→3→3,返回1→2→3. 测试样例1: 输入 {1,1,2} 返回值{1,2} 测试样例2: 输入{1,1,1} 返回值{1} 测试样例3:

qq_53505979的博客 590

YOLO11改进-注意力-引入Deformable Large Kernel Attention (DLKA) 解决多尺度、小目标、遮挡等问题

Deformable Large Kernel Attention (DLKA) 是一种用于视觉任务的注意力机制,旨在提升模型在处理不同尺寸和形状对象时的灵活性和性能。DLKA 的设计灵感源自传统的注意力机制,但通过引入可变形核(deformable kernel)来增强对局部特征的适应能力。

qq_64693987的博客 4042

算法的学习笔记—数组中的逆序对(牛客JZ51)

逆序对问题是一个经典的算法问题,借助归并排序可以将其优化至Onlog⁡nOnlogn的时间复杂度。通过在归并排序的过程中适时地统计逆序对,我们可以有效地解决这个问题。😁热门专栏推荐想学习vue的可以看看这个java基础合集数据库合集redis合集nginx合集linux合集手写机制微服务组件spring_尘觉springMVCmybits🤔欢迎大家加入我的社区尘觉社区文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁。

业精于勤,荒于嬉 1860

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【NOWCODE EIGHT】:二分查找\排序

程序=数据结构+算法,数据结构相当于一套普遍适用的工具,算法相当于一套行之有效的解题方法和解题步骤。Dambisa Moyo 曾经说过:“种一颗树最好的时间是十年前,其次是现在。”所以十年前没有刷题的朋友,现在跟着博主一起刷题吧。数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。❄️ 冰冻三尺非一日之寒❄️,只刷一两天刷法可成不了编程界的耶路撒冷,千里之行始于足下,所以还是得坚持刷题阿,每天记得要上机哟!!!

m0_56902859的博客 206

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数组中的逆序对

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。

qq_65898266的博客 137

51. 数组中的逆序对

51. 数组中的逆序对 NowCoder 题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 解题思路 private long cnt = 0; private int[] tmp; // 在这里声明辅助数组,而不是在 merge() 递归函数中声明 public int InversePairs(int[]...

weixin_37097995的博客 85

剑指offer之数组中的逆序对(Java实现)

数组中的逆序对 NowCoder 题目描述: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,size&lt;=10^4 对于%75的数据,size&lt;=1...

曾经 389

每日练习8.16

1.阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有(A) package NowCoder; class Test { public static void hello() { System.out.println("hello"); } } public class MyApplication { public sta...

perfectmatch_G的博客 514

NC15163 - 逆序数 ( 树状数组 / 线段树 )

题目链接:点击进入 题目 思路 树状数组求解逆序对,原理: 插入时,将输入的数看作下标,修改的值为1。先查询再插入。 当输入数时,先查询,查询的时候返回的是前缀和,先查询最大值下标的前缀和,也就是最大值下标之前与多少个位置为 1 ,然后再查询输入的数之前有多少个位置为 1 ,两者做差就是有多少个比输入的数大的位置为 1 ,也即是之前输入的有多少是比 x 大的。差值更新答案。然后再将输入的数对应的位置插入 1 。 代码 // Problem: 逆序数 // Contest: NowCoder // URL

Cosmic_Tree的博客 360

G 牛客小白月赛87

【代码】G 牛客小白月赛87。

m0_75125820的博客 585

牛客小白月赛61-E-排队

结论 不相等的数字对数 = C(n,2) - ∑C(2,cnt(i))(i数字的出现次数)b的乘法逆元 x = qpow(b,mod - 2,mod),费马小定理,注意是mod - 2。其实是exgcd(b,p,逆元x,路人y) return = b,p的gcd,不过这里用不到。注意,扩展欧几里得是可以有返回值的,这个返回值的意义就是a,b的gcd。这块一直不会,今天一学才发现,就是之前学过的乘法逆元,学过就忘,不愧是我(doge。a / b % mod 的情况,可以求b的乘法逆元。

aiwangyi6的博客 778

NC14522 珂朵莉的数列 ( 树状数组 + 离散化 )

题目链接:点击进入 题目 思路 若 a [ i ] 和 a [ j ] 是一对逆序对,那么它对答案贡献是 i * ( n - j + 1 ) ( 也就是对所有区间左边界在 [ 1 , i ] 范围内,区间右边界在 [ j , n ] 的范围的区间都有贡献 ) 。 那么,我们可以枚举 j ,看前面有多少比它大的数,并求它们的坐标和,然后更新答案。 求前面有多少个比它大的数,这个可以用树状数组实现 ( 例如此题 ) ,但是这里还要求坐标和,正常的操作我们是修改值为 1 ,最后求前缀的答案就是有多少个数存在,

Cosmic_Tree的博客 236

练习(二)(Java)

1、下面代码将输出什么内容:(B false) public class SystemUtil{ public static boolean isAdmin(String userId){ return userId.toLowerCase()=="admin"; } public static void main(String[] args){ System.out.println(isAdmin("Admin")); } } 2、阅读如下代码。 请问,对语句行 test.hello(

zz070的博客 287

剑指 Offer 题解 - 50~59

50. 第一个只出现一次的字符位置 51. 数组中的逆序对 52. 两个链表的第一个公共结点 53. 数字在排序数组中出现的次数 54. 二叉查找树的第 K 个结点 55.1 二叉树的深度 55.2 平衡二叉树 56. 数组中只出现一次的数字 57.1 和为 S 的两个数字 57.2 和为 S 的连续正数序列 58.1 翻转单词顺序列 58.2 左旋转字符串 59. 滑动窗口的最大值 50...

weixin_37097995的博客 238

剑指offer题解——(50~59)

50. 第一个只出现一次的字符位置 51. 数组中的逆序对 52. 两个链表的第一个公共结点 53. 数字在排序数组中出现的次数 54. 二叉查找树的第 K 个结点 55.1 二叉树的深度 55.2 平衡二叉树 56. 数组中只出现一次的数字 57.1 和为 S 的两个数字 57.2 和为 S 的连续正数序列 58.1 翻转单词顺序列 58.2 左旋转字符串 ...

dieshi8689的博客 303

Contest

1 2 4 3 3 2 1 4 (0, 0, 1, 0) // Problem: Contest // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/21763/1021 // Memory Limit: 262144 MB // Time Limit: 2000 ms // 2022-04-16 15:31:39 // // Powered by CP Editor (https://cpeditor.org)

qq_28409093的博客 159
上一篇: 斐波那契博弈证明
下一篇: D2. Mocha and Diana (Hard Version)
RunningBeef
博客等级 码龄7年 29粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值