小a的旅行计划

来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

文章目录

    • 题目描述
    • 题解:
    • 代码:

题目描述

小a终于放假了,它想在假期中去一些地方游玩,现在有N个景点,编号为1, 2, \dots
N1,2,…N,同时小b也想出去游玩。由于一些特殊♂原因,他们的旅行计划必须满足一些条件 首先,他们可以从这N个景点中任意选几个游玩
设小a选出的景点集合为A,小b选的景点集合为B,则需要满足

  1. A,B的交集不能为空集
  2. A,B不能相互包含(A=B也属于相互包含) 注意:在这里我们认为(A,B)是无序的,即(A,B)和(B,A)是同一种方案

输入描述:
一个整数N表示景点的数量
输出描述:
一个整数表示方案数,答案对108 + 7取模
示例1
输入

3

输出

3

说明
合法的方案如下:
小a:(1, 2) 小b: (2, 3)
小a:(1, 3) 小b: (2, 3)
小a:(1, 2) 小b: (1, 3)
示例2
输入
复制

4

输出
复制

30

示例3
输入
复制

2

输出
复制

0

示例4
输入
复制

10000

输出
复制

68735934

示例5
输入

1

输出

0

备注:
对于100%的数据1⩽n⩽10 13

题解:

解题思路来自
我们整合一下题目的条件可以得到,A和B都至少有两个元素,且最少有一个相同,至少有一个不同
一共n的元素,我们可以先选出A的元素,然后在A中选一些元素作为公共元素,然后在A未选的元素中选择给B
可以得到公式
在这里插入图片描述
我们注意到公式中存在除法操作,且我们需要mod,所以用逆元来算
求逆元的方法:

代码:

#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
const ll mod=1e8+7;
ll exgcd(ll a,ll b,ll &x,ll &y)//扩展欧几里得算法
{if(b==0){x=1;y=0;return a;  //到达递归边界开始向上一层返回}ll gcd=exgcd(b,a%b,x,y);ll y1=y;    //把x y变成上一层的ll x1=x;y=x1-(a/b)*y1;x=y1;return gcd;     //得到a b的最大公因数
}
ll inv(ll a,ll mod){ll x,y;ll gcd=exgcd(a,mod,x,y);if(gcd!=1)return -1;else return (x+mod)%mod; 
}
ll poww(ll a,ll b){ll ans=1;ll base=a%mod;while(b){if(b&1)ans=ans*base%mod;base=base*base%mod;b>>=1;}return ans%mod;
}
//ll inv(ll a,ll mod){
//	return poww(a,mod-2);
//}
int main()
{ll n;cin>>n;
//	cout<<poww(2,3)<<endl;ll ans1=((poww(4,n)-1)-(poww(3,n+1))+mod)%mod;ll ans2=3*poww(2,n-1)%mod;ll ans3=inv(2,mod)%mod;cout<<(ans1*ans3+ans2)%mod;return 0;
}

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

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

相关文章

旅游计划

旅游n个城市&#xff0c;但并不是每一条路线花费都是一样的。想把所有的城市都旅游一遍&#xff0c;但是花费最小。 输入格式 第一行输入一个整数n,表示有n个城市 接下来有一个n*n的矩形&#xff0c;表示每两个城市之间的火车花费&#xff0c;每两个城市之间的花费不会超过100…

CHAP7:使用 R 编程进行数据分析

1.了解 R 的基础知识 R 是一种编程语言&#xff0c;可用于在数据分析过程的每个阶段执行任务。在这部分课程中&#xff0c;您将了解 R 和 RStudio&#xff0c;这是 R 的集成开发人员环境 (IDE)。您将探索使用 RStudio 与 R 一起工作的好处。RStudio 使您能够轻松利用 R 的特性…

记录常用的R语言的一些零碎知识(包括ggplot2作图)

平常使用R的时候&#xff0c;会遇到一些小问题&#xff0c;这时就会去上网查&#xff0c;但查到结果&#xff0c;如果不记录起来&#xff0c;常常会遇到相同的问题时再次查询&#xff0c;费时费力&#xff0c;因此决定记录下这些零碎的R语言知识&#xff08;不定时更新&#xf…

R语言入门-数据分析实操(tyidyverse工作流+代码)

1. 数据分析的开端&#xff0c;Tidyverse&#xff1f; tidyverse 是一个清晰的 R 包集合&#xff0c;在数据操作、探索和可视化领域提供统一的数据科学解决方案&#xff0c;这些解决方案具有共同的设计理念。它是由 RStudio 背后的首席科学家 Hadley Wickham 创建的。 tidyver…

从零开发基于chatGPT的社区交友系统 (前后端分离)丨主页框架 03

03 主页框架 前言开工引用iconfont字体图标template代码style代码页面展示 路由局部跳转script代码 总结 前言 上一章我们实现了基础的主题切换功能&#xff0c;这一章我们开始搭建主页主要框架&#xff0c;并测试一下我们的切换主题功能。 开工 引用iconfont字体图标 这里…

制造焦虑的一边去! AI 不会让我们失业,还会带来大量新机遇!

点击上方“编程技术进阶”&#xff0c;加"星标" 重磅干货&#xff0c;第一时间送达 大家好&#xff0c;我是编哥。先送上涛哥用 AI 画的美女&#xff0c;目测这个是涛哥最近的梦中情人 声明&#xff1a;本文引用图片来自涛哥&#xff08;公众号&#xff1a;涛哥聊Pyt…

AI崛起,我们应该保持自我意识!

目录 前言西部世界剧情&#xff1f;辅助还是威胁&#xff1f;如何自我保护?总结 前言 人工智能技术发展迅速&#xff0c;为我们的生活带来了很多便利。但就个人来说这些技术都是可控的&#xff0c;我并不怎么担心。直到ChatGPT的到来&#xff0c;把我惊呆了。一边感叹AI技术的…

GPT帮你写简历:求职日企篇

正文共 927 字&#xff0c;阅读大约需要 3 分钟 求职者必备技巧&#xff0c;您将在3分钟后获得以下超能力&#xff1a; 快速生成日文简历 Beezy评级 &#xff1a;B级 *经过简单的寻找&#xff0c; 大部分人能立刻掌握。主要节省时间。 推荐人 | nanako 编辑者 | Linda 在应聘…

chatgpt赋能Python-python如何构造矩阵

Intro Python是一门强大的编程语言&#xff0c;拥有广泛的应用领域&#xff0c;其中矩阵运算是其中一个重要的方向。在本文中&#xff0c;我们将介绍如何使用Python构造矩阵&#xff0c;并介绍常见的矩阵运算。 什么是矩阵&#xff1f; 矩阵是由一组有序数排列成的矩形阵列&…

chatgpt赋能python:Python怎么手动输入矩阵

Python怎么手动输入矩阵 若想在使用Python进行科学计算或机器学习时&#xff0c;我们经常会使用矩阵。要能够利用Python处理这些矩阵&#xff0c;我们需要了解如何输入一个矩阵。本文将介绍如何通过代码手动输入矩阵。 什么是矩阵 矩阵是一个二维数组&#xff0c;它包含了行…

新知实验室 TRTC在线上教育场景中的一种应用实践

一、参赛说明 很荣幸参与此次征文活动&#xff0c;我是从2年多以前&#xff0c;接触腾讯云TRTC相关产品&#xff0c;正逢疫情肆虐&#xff0c;很多业务迫切需要从线下转移到线上。 经过2年的实践&#xff0c;TRTC本身也经历了多次的迭代&#xff0c;功能更强大&#xff0c;也…

Auto_GPT:如何使用Auto-GPT、安装、开发

文章目录 前言一、使用前提二、如何在您的 PC 上安装 Auto-GPT第 1 步&#xff1a;安装 Python第 2 步&#xff1a;获取 Auto-GPT 源代码和 OpenAI API 密钥第 3 步&#xff1a;在 Windows、MacOS和 Linux上安装 Auto-GPT 三、如何在你的 PC 上运行Auto-GPT总结 前言 Auto-GPT…

【霸指拓客】抖音自动引流脚本源码终端开发

<<抖音自动引流脚本源码.>> auto(); //等待广告加载 launchApp("抖音极速版"); sleep(Math.random()*10010000); click("我知道了"); sleep(3000); back(); sleep(2000); var w device.width; var h device.height; while(true){ var i…

Autojs抖音小助手抢红包福袋脚本实战分享

此代码由日赚3万网autojs开发交流群整理提供&#xff0c;欢迎大家一起技术交流&#xff0c;查看更多脚本和源码&#xff1a; 一键加群。如有侵权,请联系我删除&#xff01; // 最新抖音小助手抢福袋脚本已更新至V5.18&#xff0c;可自动换号批量多开操作&#xff0c;单机日入15…

不要再用 C/C++ 的这种说法了!

我们对“C/C”这种写法或说法似乎在无形之中早已习以为常&#xff0c;然而&#xff0c;这种做法真的是对的吗&#xff1f; 在今天这篇文章中&#xff0c;有开发者呼吁应该立即停止使用“C/C”这种说法&#xff0c;因为这属于两种完全不同的编程语言&#xff0c;以下是他解释的原…

真正的Python多线程来了!

【CSDN 编者按】IBM工程师Martin Heinz发文表示&#xff0c;Python即将迎来了真正的多线程时刻&#xff01; 原文&#xff1a;https://martinheinz.dev/blog/97 未经授权&#xff0c;禁止转载&#xff01; 作者 | Martin Heinz 责编 | 梦依丹 翻译工具 | ChatGPT 32岁的Python…

Circular lollipop | 哇咔咔!!!环形棒棒糖图好吃又好玩!~

1写在前面 今天不想废话了&#xff0c;直接看图吧。&#x1f447; 复现代码step by step&#xff0c;自己看吧。&#x1f92a; 2用到的包 rm(list ls())library(tidyverse)library(ggtext)library(patchwork) 3示例数据 df_pw <- read.csv("./passwords.csv",row…

最新突破!天然产物首次实现全合成,轰动整个化学界

01 科研背景 生物医学是综合医学、生命科学和生物学的理论和方法而发展起来的前沿交叉学科,基本任务是运用生物学及工程技术手段研究和解决生命科学&#xff0c;特别是医学中的有关问题。机器学习技术能利用复杂的算法在大规模、异质性数据集中进行运行,在生物医学方面、人类…