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

个人怎么建设图书网站推广引流渠道有哪些

个人怎么建设图书网站,推广引流渠道有哪些,网站建设的美图,网站设计建设维护与更新http://codeforces.com/contest/792/problem/C 这题奇葩题我居然用dp过了。 如果要模拟的话,可以用一个栈保存,保存每一个%3 2的pos,%3 1的pos,注意到题目是最多删除2个数,就能使得整个数%30了,如果要删除…

http://codeforces.com/contest/792/problem/C

这题奇葩题我居然用dp过了。

如果要模拟的话,可以用一个栈保存,保存每一个%3 = 2的pos,%3 = 1的pos,注意到题目是最多删除2个数,就能使得整个数%3=0了,如果要删除前导0的话就另外算。

那么贪心从栈顶删除,也就是先删除后面的数就行。然后需要删除2,又分两种情况,删除两个1和删除一个2。。等等,一路模拟。

比赛的时候没想到这样,也觉得很复杂,于是就dp了,虽然TLE了,但是加了一个剪枝就过了,dfs很玄

 

我用dp[i][j]表示,前i位中,模3后余数是j的最大合法长度,最大合法长度,也就是不能含有前导0.所以1001这样的情况求出来是无解的,需要特判一下。

那么求到了这个长度之后

题目就变成了,给出n个数字,选出k个,使得组合起来得数字%3 = 0,不能含有前导0.

我想不到好的算法,就dfs暴力了。感觉应该会超时,但是剪了剪支居然46ms

 

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <assert.h>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;#include <iostream>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <string>
#include <bitset>
const int maxn = 1e5 + 20;
char str[maxn];
int dp[maxn][3], lenstr; //dp出答案
vector<char>ans;
bool dfs(int cur, int now, int len, int pre) {if (now == 0 && len == dp[lenstr][0]) return true;if (cur == lenstr + 1) return false;if (len >= dp[lenstr][0]) return false;if (lenstr - cur + 1 + len < dp[lenstr][0]) return false;if (str[cur] == '0') {if (pre) {if (dfs(cur + 1, now, len + 1, 1)) {ans.push_back(str[cur]);return true;}return dfs(cur + 1, now, len, pre);} else {return dfs(cur + 1, now, len, pre);}} else {if (dfs(cur + 1, (now + str[cur] - '0') % 3, len + 1, 1)) {ans.push_back(str[cur]);return true;}return dfs(cur + 1, now, len, pre);}
}
void work() {scanf("%s", str + 1);lenstr = strlen(str + 1);memset(dp, -0x3f, sizeof dp);dp[0][0] = 0;int flag = inf;for (int i = 1; i <= lenstr; ++i) {if ((str[i] - '0') % 3 == 0) flag = i;for (int j = 0; j < 3 && i > 1; ++j) {dp[i][j] = dp[i - 1][j];}//不是0的,自己作为一个if (str[i] != '0') dp[i][(str[i] - '0') % 3] = max(dp[i][(str[i] - '0') % 3], 1);for (int j = 0; j < 3; ++j) {int res = (j * 10 + str[i] - '0') % 3;dp[i][res] = max(dp[i][res], dp[i - 1][j] + 1);}}
//    cout << dp[lenstr][0] << endl;if (dp[lenstr][0] < 0 && flag == inf) {cout << -1 << endl;return;}if (dp[lenstr][0] < 0 && flag != inf) {cout << str[flag];return;}dfs(1, 0, 0, 0);reverse(ans.begin(), ans.end());for (int i = 0; i < ans.size(); ++i) {cout << ans[i];}
}
int main() {
#ifdef localfreopen("data.txt", "r", stdin);
//    freopen("data.txt", "w", stdout);
#endifwork();return 0;
}
View Code

 

转载于:https://www.cnblogs.com/liuweimingcprogram/p/6639315.html

http://www.lbrq.cn/news/2422531.html

相关文章:

  • 旅游网站建设注册网游推广
  • 网站域名备案与不备案的区别软文广告是什么意思
  • 网站设计与管理的软件怎么做网络宣传推广
  • wordpress上传大小限制东莞网络推广优化排名
  • wordpress会员计时重庆黄埔seo整站优化
  • wordpress调整侧边栏的高度百度seo和sem
  • 网站做电话线用二十四个关键词
  • 网站建设教程 冰美人视频网络推广费计入什么科目
  • 做包皮医院网站百度手机版下载
  • 陕西 网站建设sem优化师是做什么的
  • 新手做网站做什么样的竞价被恶意点击怎么办
  • 做网站用什么系统好竞价广告
  • 郑州的做网站公司天津seo技术教程
  • 厦门网站建设哪家公司好关键词seo排名怎么样
  • 商洛网站制作seo合作
  • 免费企业建站系统排名360搜索优化
  • 驾校一点通网站怎么做电商网站排名
  • 网站建设和编程的区别丽水百度seo
  • 做网站建设的公司有哪些内容品牌营销成功案例
  • 网站备案后 如何建设长沙百家号seo
  • 湖北网站建设 鄂 icp长春seo顾问
  • 长春建设集团网站百度搜索引擎收录
  • 微信对接网站可以做301跳转吗今日百度小说排行榜风云榜
  • 西安高校定制网站建设公司推荐电商网站规划
  • 企业网站搭建哪家好新闻源发稿平台
  • 动软代码生成器 做网站网站百度不收录
  • 北京通州网站建设石家庄网络seo推广
  • 网站建设标准规范济南谷歌推广
  • 杭州企业网站优化哪家公司建设网站好
  • 衡水做网站开发的百度怎么发自己的小广告
  • linux用户态各定时器抖动测试
  • 在 Ubuntu 22.04 上安装并优化 Nginx nginx入门操作 稍难,需要有一定理论 多理解 多实践
  • 原型链污染
  • Java学习----NIO模型
  • 【每日算法】专题四_前缀和
  • redis 如何优雅地进行键设计?