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

网站建设分金手指排名十七页面设计专业

网站建设分金手指排名十七,页面设计专业,公司网站如何建设,wordpress插件dx seo下载链接:登录—专业IT笔试面试备考平台_牛客网 给定一个正整数 n,你可以对 n 进行任意次(包括零次)如下操作: 选择 n 上的某一数位,将其删去,剩下的左右部分合并。例如 123,你可以选择…

链接:登录—专业IT笔试面试备考平台_牛客网


给定一个正整数 n,你可以对 n 进行任意次(包括零次)如下操作:

  • 选择 n 上的某一数位,将其删去,剩下的左右部分合并。例如 123,你可以选择删去第二位 2,得到新数 13。

在对 nnn 进行操作后,请问有多少种不同的 n,使得n 不是 3 的倍数?
由于结果可能非常大,请输出对 1000000007 取模的结果。

思路:

线性dp去求解

从前往后去枚举看有多少个时符合条件的 

数组dp[i][j]记录当枚举刀第i个其中所以mod3结果是j的数j=0,1,2

然后去转移

比如1223

取123时 你的2可以从第三位和第二位的2继承过来的

dp的转移就是在前面已有的数字末尾加上一个数,如果这个数字是前面没有出过的话就在该位上加上1

第一位 1(0*2+1=1)

第二位 1,12,2(1*2+1=3)

第三位 1,12,2,12,122,22(3*2+0=6)

如果前面出现过的话你发现会和之前的产生重复就是第3位12出现了两次

我们发现第三位的12其实一次从第一位的1加上2继承下去,一次从第二位的1加上一个2继承下去

本质上就是从前一位多继承了一次,因此减去前一位的数就行了,也就是去重一下

第一位 1(0*2+1=1)

第二位 1,12,2(1*2+1=3)

第三位 1,12,2,122,22(3*2+0-1=5)

第四位1,12,2,122,22,13,123,23,1223,223,3(5*2+1=11)

最后在开3位记录是否被3整除是多少就行了

#include<iostream>
#include<algorithm>
#include<numeric>//accumulate(be,en,0)
#include<cstring>//rfind("string"),s.find(string,begin)!=s.npos,find_first _of(),find_last_of()
#include<string>//to_string(value),s.substr(int begin, int length);
#include<cstdio>
#include<cmath>
#include<vector>//res.erase(unique(res.begin(), res.end()), res.end()),reverse(q.begin(),q.end());
#include<queue>//priority_queue(big)  /priority_queue<int, vector<int>, greater<int>> q(small)
#include<stack>
//#include<map>//unordered_map
#include<set>//iterator,insert(),erase(),lower(>=)/upper_bound(>)(value)/find()return end()
#include<unordered_map>
#include<unordered_set>
#include<bitset>//size,count(size of 1),reset(to 0),any(have 1?)
//#include<ext/pb_ds/assoc_container.hpp>//gp_hash_table
//#include<ext/pb_ds/hash_policy.hpp>
//using namespace __gnu_pbds;
#define int long long//__int128 2^127-1(GCC)
#define PII pair<int,int>
using namespace std;
const int inf = 0x3f3f3f3f3f3f3f3f, N = 2e5 + 5, mod = 1e9 + 7;
int dp[N][3];
signed main()
{ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0);string s;cin >> s;s = ' ' + s;int n = s.length();int pre[10] = { 1 };dp[0][0] = 1;for (int i = 1; i < n; i++) {int x = s[i] - '0';int m = pre[x];for (int j = 0; j < 3; j++)dp[i][(j + x) % 3] = (dp[i - 1][(j + x) % 3] + dp[i - 1][j]) % mod;if (m){for (int j = 0; j < 3; j++)dp[i][(j + x) % 3] = (dp[i][(j + x) % 3] + mod - dp[m - 1][j]) % mod;}pre[x] = i;}cout << (dp[n - 1][1] + dp[n - 1][2]) % mod << '\n';}

http://www.yayakq.cn/news/160168/

相关文章:

  • 建个商城网站多少钱怎么样让网站宣传自己
  • 统计局门户网站建设目标360官方下载官网
  • 做信息网站需要什么整合营销传播方案案例
  • wordpress全站美化nginx即代理又做网站
  • 网站续费能自己续费吗成品源码78w78
  • 广州微网站建设案例鱼骨建站公司
  • 从江网站建设云电脑永久免费版
  • 网站数据库连接失败南宁做网站公司品牌云尚网络
  • qq电脑版网页登录入口优化公司治理
  • 济源建网站企业电话号码查询网
  • 在哪建设网站盐城有没有做网站吗
  • 苏州网站建设与网络营销做推广的网站微信号
  • 中国建设银行福州招聘信息网站贵州省建设厅的网站
  • 搜索案例的网站顶易云外贸软件
  • ui参考网站建站公司前途
  • 企业网站里面的qq咨询怎么做网站建设实验七
  • 远近互联网站建设小说推广赚钱
  • 个性化网站万年县建设银行网站拼音全称
  • 广西网站建设教程网站建设的风险管理
  • 网站做动态图片大全临清网站制作
  • 免费素材视频网站t恤定制网站
  • 创美艺佳网站是谁做的登录建设官方网站
  • 做评测好的视频网站怎么下载ppt模板
  • 新乡营销网站建设公司云主机建站
  • 廊坊企业自助建站简述网站建设的概念
  • 连云港网站优化方案进出口贸易公司怎么找客户
  • 医院网站设计怎么做如何发布网站到域名
  • 做网站系统具体步骤中国机械设计网
  • 吉林企业网站模板建站哪个好注册域名需要费用吗
  • 关于网站建设报告网站建设最新