首页 > 其他分享 >牛客练习赛104 C 1919810

牛客练习赛104 C 1919810

时间:2022-10-21 22:01:32浏览次数:91  
标签:1919810 练习赛 int mo 牛客 gc -- include define

https://ac.nowcoder.com/acm/contest/43058/C

思路

一个很简单的dp

记录每一位i可以给下一位的j提供的方案数

理论上层数应该倒着枚举,但是我这个写法恰好避免了重复,所以正着倒着都是对的

代码

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cctype>
#include<bitset>
#define ll long long
#define gc getchar
#define maxn 1000005
#define mo 1000000007
using namespace std;

inline ll read(){
	ll a=0;int f=0;char p=gc();
	while(!isdigit(p)){f|=p=='-';p=gc();}
	while(isdigit(p)){a=(a<<3)+(a<<1)+(p^48);p=gc();}
	return f?-a:a;
}int n;
ll ans,f[10][15];

char s[maxn];
int main(){
	scanf("%s",s+1);
	n=strlen(s+1);
	for(int i=1;i<=n;++i){
		int d=s[i]-'0';
		if(i>=7)ans=(ans+f[6][d])%mo;
		if(i>=6)
			for(int j=d-1;~j;--j)
				f[6][j]=(f[6][j]+f[5][d])%mo;
		if(i>=5)
			for(int j=d-1;~j;--j)
				f[5][j]=(f[5][j]+f[4][d])%mo;
		if(i>=4)
			for(int j=d-1;~j;--j)
				f[4][j]=(f[4][j]+f[3][d])%mo;
		if(i>=3)
			for(int j=d+1;j<=9;++j)
				f[3][j]=(f[3][j]+f[2][d])%mo;
		if(i>=2)
			for(int j=d-1;~j;--j)
				f[2][j]=(f[2][j]+f[1][d])%mo;
		for(int j=d+1;j<=9;++j)
			++f[1][j];
	}
	printf("%lld\n",ans);
	return 0;
}

标签:1919810,练习赛,int,mo,牛客,gc,--,include,define
From: https://www.cnblogs.com/hanruyun/p/16814910.html

相关文章

  • 牛客练习赛104 B 114514
    https://ac.nowcoder.com/acm/contest/43058/B思路要求1~n满足如下式子的个数\((i^{11}-i)(i^{451}-i^4)\equiv(i^{11}-i^4)(i^{11}-i)(mod451*4)\)打表可知,全都符合......
  • 牛客SQL-employees表(一):195-220
    195.查找employees里最晚入职员工的所有信息SELECT*FROMemployeesWHEREhire_date=(SELECTMAX(hire_date)FROMemployees)/*#如果员工入职的日期都不是同一......
  • 牛客SQ-actor表:223-232
    223.使用join查询方式找出没有分类的电影id以及其电影名称SELECTfilm_id,titleFROMfilmt1LEFTJOINfilm_categoryt3USING(film_id)WHEREcategory_idISNULL......
  • 3的倍数【牛客】
    链接:https://ac.nowcoder.com/acm/contest/29035/E输入描述:第一行是一个整数T,表示有T组数据。接下来有T行,每行两个整数L,R(L<=R)。1<=T<=10,L<=R<=10^18。输出......
  • 牛客MySQL真题练习2(180-194)
    统计每款的SPU(货号)数量,并按SPU数量降序排序SELECTstyle_id,COUNT(item_id)ASSPU_numFROMproduct_tbGROUPBYstyle_idORDERBYSPU_numDESC统计实际总销售......
  • 牛客 指数循环节
     题目描述请注意每次的模数不同。输入描述:第一行两个整数n,m表示序列长度和操作数接下来一行,n个整数,表示这个序列接下来m行,可能是以下两种操作之一:操作1:区间[l,r]加上......
  • 牛客直通笔试
    一、选择题String类能否被继承答案是不能,原因是String本身是用final修饰的二、算法题......
  • 2022牛客国庆集训派对day1
    B题意:给定一个01字符串,你需要找到最长的一个子串和最长的一个子序列,分别使得其中01的个数相同。做法:子序列很好算2×min(cnt0,cnt1)子串可以考虑前缀和将0与1的个数......
  • 牛客网高频算法题系列-BM19-寻找峰值
    牛客网高频算法题系列-BM19-寻找峰值题目描述给定一个长度为n的数组nums,请你找到峰值并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个所在位置即可。峰......
  • 手把手带你学SQL—牛客网SQL计算用户的平均次日留存率
    牛客是一款不论是面试还是刷题都是非常有用的还等什么,传送门 ​​牛客网sql​​......