P3414 SAC#1 - 组合数

题目背景

本题由世界上最蒟蒻最辣鸡最撒比的SOL提供。

寂月城网站是完美信息教室的官网。地址:http://191.101.11.174/mgzd 。

题目描述

辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌!

今天他萌上了组合数。现在他很想知道simga(C(n,i))是多少;其中C是组合数(即C(n,i)表示n个物品无顺序选取i个的方案数),i取从0到n所有偶数。

由于答案可能很大,请输出答案对6662333的余数。

输入输出格式

输入格式:

输入仅包含一个整数n。

输出格式:

输出一个整数,即为答案。

输入输出样例

输入样例#1:

3
输出样例#1:

4

说明

对于20%的数据,n <= 20;

对于50%的数据,n <= 1000;

对于100%的数据,n <= 1 000 000 000 000 000 000 (10^18)


2的n-1次方

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long ll;
const ll MOD=;
ll n;
ll powMod(ll a,ll b){
ll ans=;
for(;b;b>>=,a=(a*a)%MOD)
if(b&) ans=(ans*a)%MOD;
return ans;
}
int main(){
scanf("%lld",&n);
printf("%lld",powMod(,n-));
}



P3413 SAC#1 - 萌数

题目背景

本题由世界上最蒟蒻最辣鸡最撒比的SOL提供。

寂月城网站是完美信息教室的官网。地址:http://191.101.11.174/mgzd 。

题目描述

辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌!

好在在他眼里,并不是所有数都是萌的。只有满足“存在长度至少为2的回文子串”的数是萌的——也就是说,101是萌的,因为101本身就是一个回文数;110是萌的,因为包含回文子串11;但是102不是萌的,1201也不是萌的。

现在SOL想知道从l到r的所有整数中有多少个萌数。

由于答案可能很大,所以只需要输出答案对1000000007(10^9+7)的余数。

输入输出格式

输入格式:

输入包含仅1行,包含两个整数:l、r。

输出格式:

输出仅1行,包含一个整数,即为答案。

输入输出样例

输入样例#1:

1 100
输出样例#1:

10
输入样例#2:

100 1000
输出样例#2:

253

说明

记n为r在10进制下的位数。

对于10%的数据,n <= 3。

对于30%的数据,n <= 6。

对于60%的数据,n <= 9。

对于全部的数据,n <= 1000,l < r。


在出题人标程的帮助下终于A掉了

数位DP

逆向思维,求不含回文的数

f[i][j][k]表示到i位i为j i-1为k的不含回文的数的个数

很简单的递推,我用了个sum[i][j]来优化

天际线的处理要注意,一开始就是因为打错了哪里

ans要用f更新,而不是sum,否则还是有可能产生回文,天际线跟其他的不一样i之前还有数

PS:高精度-1挺坑的

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <map>
using namespace std;
const int N=,INF=1e9+,MOD=1e9+;
typedef long long ll;
char l[N],r[N];
int n;
ll f[N][][],sum[N][N];
void dp(int n){
for(int i=;i<=;i++){
for(int j=;j<=;j++) if(i!=j) f[][i][j]=;
sum[][i]=;
sum[][i]=;
}
for(int i=;i<=n;i++)
for(int j=;j<=;j++){
for(int k=;k<=;k++) if(j!=k){
for(int z=;z<=;z++) if(j!=z&&k!=z) f[i][j][k]=(f[i][j][k]+f[i-][k][z])%MOD;
sum[i][j]=(sum[i][j]+f[i][j][k]);
}
}
}
void dec(char s[],int &n){
s[n]--;int tn=n;
while(s[n]<'') s[n]='',s[--n]--;
if(s[]==''){
tn--;
for(int i=;i<=tn;i++) s[i]=s[i+];
}
n=tn;
}
ll sol(char s[],int n){
ll ans=,a[N];
ll tot=;
if(n==||n==) return ;
for(int i=;i<=n;i++) a[i]=s[n-i+]-'',tot=(tot*+s[i]-'')%MOD;
a[n+]=-;
for(int i=;i<=n-;i++)
for(int j=;j<=;j++) ans=(ans+sum[i][j])%MOD; for(int j=;j<a[n];j++) ans=(ans+sum[n][j])%MOD; int flag=;
for(int i=n-;i>=;i--){
for(int j=;j<a[i];j++) if(j!=a[i+]&&j!=a[i+]) ans=(ans+f[i+][a[i+]][j])%MOD;//!!!not sum[i][j] cause huiwen
if(a[i]==a[i+]||a[i]==a[i+]) {flag=;break;}
}
if(!flag) ans++;
return (tot-ans+MOD)%MOD;
}
int main(){
scanf("%s%s",l+,r+);
int len1=strlen(l+),len2=strlen(r+);
dp(len2);
dec(l,len1);
printf("%lld",(sol(r,len2)-sol(l,len1)+MOD)%MOD);
}

洛谷11月月赛round.2的更多相关文章

  1. 洛谷11月月赛round.1

    太感动了#2 thwfhk 240 (801ms) 100 100 40   又一张明信片,话说10月的怎么还没收到   P2246 SAC#1 - Hello World(升级版) 题目背景 一天, ...

  2. 「P4996」「洛谷11月月赛」 咕咕咕(数论

    题目描述 小 F 是一个能鸽善鹉的同学,他经常把事情拖到最后一天才去做,导致他的某些日子总是非常匆忙. 比如,时间回溯到了 2018 年 11 月 3 日.小 F 望着自己的任务清单: 看 iG 夺冠 ...

  3. 「P4994」「洛谷11月月赛」 终于结束的起点(枚举

    题目背景 终于结束的起点终于写下句点终于我们告别终于我们又回到原点…… 一个个 OIer 的竞赛生涯总是从一场 NOIp 开始,大多也在一场 NOIp 中结束,好似一次次轮回在不断上演.如果这次 NO ...

  4. 「LuoguP4995」「洛谷11月月赛」 跳跳!(贪心

    题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ii 块的石头高度为 h_ihi​,地面的高度是 h_0 = 0 ...

  5. 洛谷11月月赛(284pts rank85)

    https://www.luogu.org/contestnew/show/12006 我是比赛完后在去写的 这是我第一次打洛谷月赛,之前一次是比赛完才去看而且写了第一题就没写后面的了 284分,太水 ...

  6. 【CSGRound2】逐梦者的初心(洛谷11月月赛 II & CSG Round 2 T3)

    题目描述# 给你一个长度为\(n\)的字符串\(S\). 有\(m\)个操作,保证\(m≤n\). 你还有一个字符串\(T\),刚开始为空. 共有两种操作. 第一种操作: 在字符串\(T\)的末尾加上 ...

  7. 洛谷10月月赛Round.1| P3400 仓鼠窝[单调栈]

    题目描述 萌萌哒的Created equal是一只小仓鼠,小仓鼠自然有仓鼠窝啦. 仓鼠窝是一个由n*m个格子组成的行数为n.列数为m的矩阵.小仓鼠现在想要知道,这个矩阵中有多少个子矩阵!(实际上就是有 ...

  8. 洛谷11月月赛题解(A-C)

    心路历程 辣鸡T3卡我1.5h题意,要不是最后nlh跟我解释了一下大样例估计这次是真凉透了.. A P4994 终于结束的起点 打出暴力来发现跑的过最大数据?? 保险起见还是去oeis了一波,然后被告 ...

  9. 【LGR-065】洛谷11月月赛 III Div.2

    临近$CSP$...... 下午打了一发月赛,感觉很爽. 非常菜的我只做了前两题......然而听说前两题人均过...... 写法不优秀被卡到$#1067$...... T1:基础字符串练习题: 前缀 ...

随机推荐

  1. Unity3D 5.x 交互功能 - 碰撞检测函数

    1,给第一人称控制器添加脚本:playercollisions.js 脚本中只定义变量,先不添加方法: #pragma strict var door_open_time:float=3.0; var ...

  2. 兼容性背景颜色半透明CSS代码(不影响内部子元素)

    如何简单兼容性的实现父元素是半透明背景色,而子元素不受影响. 兼容所有浏览器的背景颜色半透明CSS代码: background-color: rgba(, , , .); filter: progid ...

  3. Jar mismatch错误的解决

    新建了一个项目,包含了两个库:appcompat_v7和swipelistview,结果出现了Jar mismatch错误: [2016-04-11 17:17:27 - MySwipeListVie ...

  4. 回溯法求n的全排列

    代码如下: #include <iostream> #include <algorithm> #include <stdio.h> #include <cst ...

  5. java package一些试验

    目录如上图,当前目录下,b是文件夹, a是文件夹. B.java 源码如下: package b; import a.*; public class B{ public static void mai ...

  6. Xdebug文档(六) 分析PHP脚本

    分析PHP脚本Xdebug内置分析器能让你找到脚本中的瓶颈并用额外的工具诸如KcacheGrind或WinCacheGrind工具可视化. 介绍 Xdebug分析器是分析PHP代码和判断瓶颈或确定代码 ...

  7. Javascript中call,apply,bind方法的详解与总结

    在 javascript之 this 关键字详解 文章中,谈及了如下内容,做一个简单的回顾: 1.this对象的涵义就是指向当前对象中的属性和方法. 2.this指向的可变性.当在全局作用域时,thi ...

  8. javascript 中的location.href 并不是立即执行的,是在所在function 执行完之后执行的。

    javascript 中的location.href 并不是立即执行的,是在所在function 执行完之后执行的. 1 function getUrl(tp) { if (tp == 'd') { ...

  9. Mysql(Mariadb) 基础操作语句 (持续更新)

    基础SQL语句,记录以备查阅.(在HeiDiSql中执行) # 创建数据库 Create Database If Not Exists VerifyIdear Character Set UTF8; ...

  10. input输入框限制仅能输入数字且规定数字长度(使用与输入手机号)

    现在越来越多的账户名使用手机号来登录,为了减少前后端的交互,需要用户在输入时就要进行格式的判断, 目前的常规办法是,在输入完成后进行判断. 下面的方法是在输入时就规定只能输入数字,其他格式的字符是无法 ...