博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
U68641 划水(swim.pas/c/cpp)
阅读量:5269 次
发布时间:2019-06-14

本文共 1597 字,大约阅读时间需要 5 分钟。

题目背景

小小迪带你划水。

题目描述

输入输出格式

输入格式:

第一行一个数 T。 接下来 T 行每行一个数表示 n

输出格式:

输出 T 行每行一个整数表示这个数的子数

输入输出样例

输入样例#1: 
212345678901234567891021
输出样例#1: 
3328769131158 sol:一个个拆出来过于睿智,所以我们一位位讨论贡献,十分简单
// luogu-judger-enable-o2#include 
#include
#include
#include
using namespace std;typedef long long ll;inline ll read(){ ll s=0; bool f=0; char ch=' '; while(!isdigit(ch)) { f|=(ch=='-'); ch=getchar(); } while(isdigit(ch)) { s=(s<<3)+(s<<1)+(ch^48); ch=getchar(); } return (f)?(-s):(s);}#define R(x) x=read()inline void write(ll x){ if(x<0) { putchar('-'); x=-x; } if(x<10) { putchar(x+'0'); return; } write(x/10); putchar((x%10)+'0'); return;}#define W(x) write(x),putchar(' ')#define Wl(x) write(x),putchar('\n')const int N=100005;const ll Mod=1000000007;int T,n;ll Bin[N],SBin[N];char S[N];int main(){ int i; R(T); Bin[0]=SBin[0]=1; for(i=1;i<=100000;i++) { SBin[i]=(SBin[i-1]+(Bin[i]=Bin[i-1]*10%Mod))%Mod; Bin[i]=Bin[i-1]*10%Mod; } while(T--) { ll ans=0,Sum=1; scanf("%s",S+1); n=strlen(S+1); for(i=1;i<=n;i++) { int oo=S[i]-'0'; if(!oo) continue; ans=(ans+Sum*SBin[n-i]%Mod*oo)%Mod; Sum++; } Wl(ans); } return 0;}/*input11234567890123456789output332876913input11021output1158*/
View Code

 

 

转载于:https://www.cnblogs.com/gaojunonly1/p/10713631.html

你可能感兴趣的文章
Mac版OBS设置详解
查看>>
优雅地书写回调——Promise
查看>>
android主流开源库
查看>>
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
Ubuntu下面安装eclipse for c++
查看>>
Windows 2003全面优化
查看>>
格而知之2:UIView的autoresizingMask属性探究
查看>>
我的Hook学习笔记
查看>>
js中的try/catch
查看>>
寄Android开发Gradle你需要知道的知识
查看>>
整理推荐的CSS属性书写顺序
查看>>
ServerSocket和Socket通信
查看>>
css & input type & search icon
查看>>
源代码的下载和编译读后感
查看>>
Kafka学习笔记
查看>>
Octotree Chrome安装与使用方法
查看>>