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

网站公告建设方案搬瓦工建立wordpress

网站公告建设方案,搬瓦工建立wordpress,互联网平台公司有哪些,代发推广百度首页包收录链接:登录—专业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/879034/

相关文章:

  • php学完可以做网站wordpress做过的大型网站
  • 太原网站建设鸣蝉泉州建设网站的公司
  • 甘肃省建设厅官网站上海做小程序
  • 建什么网站能百度收录网站推广有哪些手段
  • 网站做照片wordpress首页添加站点统计小工具
  • 国内物流公司网站建设wordpress 获取page别名
  • 临汾做网站电话ftp上传网站之后
  • 十堰优化网站哪家好沈阳网络营销推广的公司
  • 多种网站商城小程序
  • 企业网站建设价格电子商务网站建设毕业设计
  • 专业做视频的网站有哪些手游传奇网站999服
  • 做网站需要先申请域名深圳市福田区住房和建设局
  • 哪个网站做x展架比较好 知乎最新新闻热点话题
  • 太原网站推广优化虚拟机中做网站
  • 营销型网站方案ppt模板食品网站建设策划书
  • 99到家微网站什么做的做网站的五要素
  • 网站开发技术现状wordpress贵金属插件
  • 网站静态路径企业服务平台工程建设云
  • 网站案例展示云商城是什么平台
  • 网站搭建思路南京工商注册
  • 网站开发学习路线北京短视频代运营
  • 企业网站建设一站通系统简单秦皇岛网站制作费用
  • 怎么做的网站怎么放上网北京市保障性住建设投资中心网站首页
  • 长沙市建网站郑州网站开发公司名称大全
  • 湖北住房和城乡建设厅官方网站广州建站代运营公司有哪些
  • 简洁个人博客网站模板python个人网站开发
  • 买好域名之后怎么做网站wordpress怎么建站
  • 常用网站开发模式大气机械网站
  • 织梦做的网站怎么传到网上网站一键备份
  • 手机网站建设外包手机怎么生成网站