当前位置: 首页 > news >正文

讲价 数学问题

题面:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
思路:
一开始是想把所有的数字都分解出来,随机组合,后来发现取出的数字是一段连续的数字
然后转变思路:
去看每一位置上的数字能有多少贡献
eg.
a [7][6][5][4][3][2][1][0]
i 7 5 8 3 6 5 8 4
以6为例
(1)
如果是去掉前面一段连续的数字,这个6还是对总的做出的贡献还是a[i]*pow(10,i)
这个算法的重点在于前面去掉一段数的情况有多少种,那么这就涉及到数学问题了
1 + 2 + . . . + ( l e n − i − 1 ) = ( l e n − i ) ⋅ ( l e n − i − 1 ) 2 1+2+...+(len-i-1)=\frac{(len-i)\cdot(len-i-1)}{2} 1+2+...+(leni1)=2(leni)(leni1)
(2)
如果是去掉后面一部分数字的话,权重(不知道这么叫是不是合适)就会有所改变
以6为例
如果后面去掉1位 a[i]3pow(10,2)
如果后面去掉2位 a[i]2pow(10,1)
如果后面去掉2位 a[i]1pow(10,0)

如果是a[2]=5
如果后面去掉1位 2pow(10,1)
如果后面去掉2位 1
pow(10,0)
即后面的这个权重是随着位数的增加有规律地改变的
代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+5;
const ll mod=1e9+7;
ll f[maxn];
string s;
int main()
{
	cin>>s;
	f[0]=1;
	for(int i=1;i<maxn;i++)	f[i]=f[i-1]*10%mod;
	reverse(s.begin(),s.end());
	ll ans=0;
	ll len=s.size();
	ll tmp=0;
	for(int i=0;i<len;i++)
    {
		ll num1=(len-i-1)*(len-i)/2%mod*f[i]*(s[i]-'0')%mod;
		ll num2=(s[i]-'0')*tmp%mod;
		tmp=((i+1)*f[i]%mod+tmp)%mod;
		ans+=(num1+num2)%mod;
		ans%=mod;
	}
	cout<<ans;
	return 0;
}

相关文章:

  • Qt官方示例学习目录
  • 【下班神器】python写自动关机程序并打包成exe文件
  • SQL 改写系列十:半连接转内连接
  • 根据上下级关系统计数据
  • 金仓数据库KingbaseES客户端编程开发框架-Hibernate Spatial(2. 概述)
  • 第二十三章 多线程(一)
  • mysql的常见的外键约束
  • React基础-JSX语法介绍
  • SAP ABAP代码自动生成demo
  • 【JS】JavaScript入门笔记第七弹之JS简单类型与复杂类型~
  • 什么是狭义人工智能、通用人工智能和超级人工智能?
  • mybatis-spring的整合
  • Python并发方案深度对比
  • 大疆创新2022数字芯片B卷
  • C# 简单封装异步Socket Server
  • 【译】理解JavaScript:new 关键字
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Angular 2 DI - IoC DI - 1
  • classpath对获取配置文件的影响
  • download使用浅析
  • Linux中的硬链接与软链接
  • Node项目之评分系统(二)- 数据库设计
  • REST架构的思考
  • XML已死 ?
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 飞驰在Mesos的涡轮引擎上
  • 聊一聊前端的监控
  • 如何胜任知名企业的商业数据分析师?
  • 使用Gradle第一次构建Java程序
  • 试着探索高并发下的系统架构面貌
  • 数据结构java版之冒泡排序及优化
  • 提醒我喝水chrome插件开发指南
  • 通过npm或yarn自动生成vue组件
  • 我从编程教室毕业
  • 译自由幺半群
  • 硬币翻转问题,区间操作
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $$$$GB2312-80区位编码表$$$$
  • (11)MATLAB PCA+SVM 人脸识别
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (论文阅读30/100)Convolutional Pose Machines
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (四)JPA - JQPL 实现增删改查
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .Net中间语言BeforeFieldInit
  • @Autowired @Resource @Qualifier的区别
  • @Autowired 与@Resource的区别