吉首大学校赛 A SARS病毒 (欧拉降幂)
链接:https://ac.nowcoder.com/acm/contest/925/A
来源:牛客网
题目描述
目前,SARS 病毒的研究在世界范围内进行,经科学家研究发现,该病毒及其变种的 DNA 的一条单链中,胞嘧啶、腺嘧啶均是成对出现的。这虽然是一个重大发现,但还不是该病毒的最主要特征,因为这个特征实在太弱了。
为了进一步搞清楚该病毒的特征,CN 疾病控制中心和阿里巴巴集团合作,用科技的力量和程序的思维来解决这个难题。现阿里巴巴特委派你成为 CN 疾病控制中心的 SARS 高级研究员,去研究在这个特征下,可能成为 SARS 病毒的 DNA 序列的个数。更精确地说,你需要统计所有满足下列条件的长度为 n 的字符串的个数:
- 字符串仅由 A、T、C、G 组成
- A 出现偶数次(也可以不出现)
- C 出现偶数次(也可以不出现)
当 n=2 时,所有满足条件的字符串有如下 6个:
TT,TG,GT,GG,AA,CC。
注: 由于这个数可能非常庞大,你只需给出对 10^9+7 取模的结果即可。
输入描述:
多组输入(不超过10组),每行一个整数n:0 < n < 1010510105
输出描述:
对于输入文件中的每一个 n,输出满足条件的字符串的个数对 10^9 +7 取模的结果。
输入
复制
1 2 100
输出
复制
2 6 113046907 题意:满足题目的序列个数有多少个思路:我们计算以每个字母结尾的个数有多少个,我们可以分两类((T,G),(A,C)),T,G字母结尾的我们每一位都会翻两倍,A,C字母每隔俩个翻一倍,但是其实我们A,C结尾的我们可以放T,G,T,G结尾也一样,所以假设 AC[]代表 AC结尾 TG[]代表 TG结尾 AC[n] = AC[n-2]*2 + TG[n-2]*2;TG[n] = AC[n-1]*2 + TG[n-1]*2; 最后我们可以化简出式子等于 (2^(n-1))*(2^(n-1)+1)因为我们的n特别大,这里我就用上了欧拉降幂(a^n)%mod = (a^(b%phi(mod)+mod))%mod
#include<bits/stdc++.h> #define maxn 1000005 #define mod 1000000007 using namespace std; typedef long long ll; char str[maxn]; ll big_number(char s[],ll m){ll num=0;for(int i=0;s[i]!='\0';i++){num=num*10+(s[i]-'0');num%=m;}return num; } ll quick_pow(ll x,ll y){ll ans=1;while(y){if(y&1) ans=(ans*x)%mod;x=(x*x)%mod;y=y/2;}return ans; } int main(){while(cin>>str){int flag=0;if((str[strlen(str)-1]-'0')%2) flag=1;ll num=big_number(str,mod-1); //cout<<"num:"<<num<<endl;ll da=quick_pow(2,num-1+mod-1);//if(flag%2) da=(da*2)%mod;cout<<(da*(da+1))%mod<<"\n";} }
转载于:https://www.cnblogs.com/Lis-/p/11072032.html
吉首大学校赛 A SARS病毒 (欧拉降幂)相关推荐
- 欧拉降幂 ---- 2020 杭电多校[E - Fibonacci Sum]+欧拉降幂+和式的调整+二次剩余+毒瘤卡常
解题思路: 首先你得知道斐波那契的通项式子:首先你得知道斐波那契的通项式子:首先你得知道斐波那契的通项式子: F(n)=15[(1+52)n−(1−52)n]F(n) = {1\over\sqrt5} ...
- 2019年ICPC银川区域赛 Easy Problem(简单莫比乌斯函数 + 欧拉降幂)
Easy Problem ∑a1=1m∑a2=1m∑a3=1m⋯∑an−1m∑anm[gcd(a1,a2,a3,-,an−1,an)==d](a1,a2,a3,-,an−1,an)k=dkd∑a1=1 ...
- 数论学习六之——欧拉定理(欧拉降幂)
我们现在就来学习数论四大定理中的最后一个定理,欧拉定理. 首先我们先介绍一下什么是欧拉函数,欧拉函数 φ ( n ) \varphi(n) φ(n)求的是不超过n且与n互素的正整数的个数,例如: φ ...
- 【2021牛客寒假第五场】C-比武招亲(下)欧拉降幂+多项式求逆预处理伯努利数计算等幂求和
[2021牛客寒假第五场]C-比武招亲(下)欧拉降幂+多项式求逆预处理伯努利数计算等幂求和 前置技能 题意 思路 Code(715MS) 传送门: https://ac.nowcoder.com/ac ...
- 欧拉降幂及其扩展欧拉降幂
欧拉降幂: 从公式来看,需要使用快速幂运算和欧拉函数 #include<bits/stdc++.h>using namespace std; typedef __int64 LL;cons ...
- 欧拉降幂(Euler_Power_Formula)
一.欧拉降幂公式 二.证明 欧拉降幂公式与证明 三.例题 https://ac.nowcoder.com/acm/contest/330/E 四.参考文章 https://blog.csdn.net/ ...
- 2019ICPC(南京) - super_log(欧拉降幂)
题目链接:点击查看 题目大意:求(a^a^a^a....^a)%mod,其中有b个a 题目分析:一道数论题,被我们做成了模拟题..首先因为涉及到指数并且指数都还比较大,所以需要知道一个降幂公式: 我们 ...
- 数学--数论--广义欧拉降幂(模板)
未使用欧拉筛: 适用于较少次数计算的欧拉降幂. #include <bits/stdc++.h> #define ll long long using namespace std; ll ...
- 数学--数论--欧拉降幂--P5091 欧拉定理
题目背景 出题人也想写有趣的题面,可惜并没有能力. 题目描述 给你三个正整数,a,m,ba,m,ba,m,b,你需要求:ab mod ma^b \bmod mabmodm 输入格式 一行三个整数,a, ...
- 数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)
一般大佬会给你证明,而菜鸟会教你怎么使用. 先摆上公式: ab≡{abmodϕ(p)gcd(a,p)=1abgcd(a,p)≠1,b<ϕ(p)abmodϕ(p)+ϕ(p)gcd(a,p)≠1,b ...
最新文章
- Eclipse下Tomcat插件的安装
- 数据库死锁查询及处理
- PHP开发调试环境配置(基于wampserver+Eclipse for PHP Developers )
- ImageView宽度填满屏幕,高度自适应
- python基础学习笔记——方法返回值
- CSS 普通流 和 行格式化上下文 IFC
- 自定义数据格式的矢量地图实现
- 如何建立有效的数据挖掘步骤
- js中substr,substring,indexOf,lastIndexOf的用法小结
- 【C++】(三) MFC入门教程 (VS 2005)
- python入门——快乐的数字
- ClickHouse安装部署
- 第一次尝试miniprogram-automator
- 总结了一些微信小程序推广方法
- 图形渲染——伽马矫正
- 微信小程序学习第8天——自定义组件的数据监听器Observer小案例
- 微博html5版什么手机,搜狐微博推出全新手机HTML5触屏版
- BI神器Power Query(15)-- PQ制作时间维度表(4)
- https server
- 小组项目具体分工情况(Web.ui相关)