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

宁波做网站的网页seo搜索引擎优化

宁波做网站的,网页seo搜索引擎优化,黑龙江省华龙建设有限公司网站,私人定制网#include <cstring> #include <cstdio> #include <cstdlib> #include <algorithm> using namespace std;/* 该题给定一个N,那么在有1.2.3...N个数字的情况下,这些数字高低交替进行排列 把所有符合情况的进行一个字典序排列,问第C个排列是一个怎样的排列…
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;/*
该题给定一个N,那么在有1.2.3...N个数字的情况下,这些数字高低交替进行排列
把所有符合情况的进行一个字典序排列,问第C个排列是一个怎样的排列
up[i][j]代表长度为i,第一位为j且后面需跟着一个上升数字的方案总数
dn[i][j]代表长度为i,第一位为j且后面需跟着一个下降数字的方案总数
根据我们所定义的状态,我们能够得到一个状态的转移关系(用来状态转移来求解方案数)
up[i][j] = SUM{ dn[i-1][k] 且 k >= j } 
dn[i][j] = SUM( up[i-1][k] 且 k < j )
*/
typedef long long int64;int N, path[25], idx;
int64 C, up[25][25], dn[25][25];void prep() {up[1][1] = dn[1][1] = 1;for (int i = 2; i <= 20; ++i) {for (int j = 1; j <= i; ++j) { // 枚举长度为i第一位为jfor (int k = 1; k < j; ++k) {dn[i][j] += up[i-1][k];}for (int k = j; k < i; ++k) { // 这个地推需要将后面的数字进行一个映射 // 例如 1,2,3,4,5 假设j=3, 那么还剩下1,2,4,5 比3大的数就只有4,5 那么// 这两个数就可以看做长度为4的情况下的3,4.也就有了[j,i-1]来枚举这个k了up[i][j] += dn[i-1][k];}}}
}void dfs(int64 x, int bound, int num, int r) {if (r > 0) { // 要求后面要跟一个上升的数字for (int i = num; i <= bound; ++i) {if (x - dn[bound][i] <= 0) {path[++idx] = i;dfs(x, bound-1, i, -1);break;} else {x -= dn[bound][i];}}}else { // 要求后面跟一个下降的数字for (int i = 1; i < num; ++i) {if (x - up[bound][i] <= 0) {path[++idx] = i; dfs(x, bound-1, i, 1);break;} else {x -= up[bound][i];}}}
}void deal(int64 x, int bound) {for (int i = 1; i <= bound; ++i) {if (x - dn[bound][i] <= 0) { // 小于等于0说明在这个数字开始的区域内path[++idx] = i;dfs(x, bound-1, i, -1); // +1或-1表示下一个数字的大小关系break;} else {x -= dn[bound][i]; // 先减去以i开始下降的部分
        }if (x - up[bound][i] <= 0) {path[++idx] = i;dfs(x, bound-1, i, 1);break;} else {x -= up[bound][i]; // 再减去以i开始上升的部分
        }}
}int main() {prep();  // 一个预处理来求出某些常量的组合数 int T;scanf("%d", &T);while (T--) {bool vis[25] = {false};idx = 0;scanf("%d %I64d", &N, &C);deal(C, N);printf("%d", path[1]);vis[path[1]] = true;for (int i = 2; i <= idx; ++i) {int cnt = 0;for (int j = 1; j <= N; ++j) {if (!vis[j]) ++cnt;if (cnt == path[i]) {printf(" %d", j);vis[j] = true;break;}} }puts("");}    return 0;
} 

 

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

相关文章:

  • 网站如何做等保备案临沂今日头条新闻最新
  • wordpress b站插件市场调研方案范文
  • 广州网站seo上海关键词优化的技巧
  • 个人网站建设分几个步走百度站长平台官网登录入口
  • 大埔建设工程交易中心网站湖南长沙最新情况
  • mediwiki 做网站东莞网站建设做网站
  • 五台网站建设攀枝花网站seo
  • 小程序解析wordpressseo电商运营是什么意思
  • 现在企业做网站用什么软件培训心得体会2000字
  • 邢台做网站的价格免费建网站平台
  • 商城网站模块北京seo百度推广
  • 动态网站设计用什么软件杭州seo整站优化
  • 源码上传网站魔贝课凡seo课程好吗
  • 网站如何做留言板南宁seo收费
  • 怎么做网站推广的论文离我最近的电脑培训中心
  • 建设银行网站是什么应用商店app下载
  • 安徽省建设厅执业资格注册中心网站百度浏览器网址
  • 商城小程序多少钱seo关键词优化推广报价表
  • 孝感网站建设公司推广平台网站有哪些
  • 校友网站 建设做网络推广有前途吗
  • 做分类信息网站模板能搜任何网站的浏览器
  • 茂易网站建设seo专员是指什么意思
  • 网站的做网站的公司台州网站优化公司
  • 品牌网站建设报价青岛网络工程优化
  • 做文章网站外贸网站建站
  • 网站品牌建设建议软件推广平台有哪些
  • 广州番禺专业做网站网络营销教材电子版
  • 网站建设分金手指排名一软文推广广告
  • 网站如何做服务器授权书搜索关键词查询工具
  • 独立系统网站360关键词推广
  • 【c++】leetcode5 最长回文子串
  • BEVformer个人理解与解读
  • vxe-table 通过配置 ajax 方式自动请求数据,适用于简单场景的列表
  • RBAC(Role-Based Access Control,基于角色的访问控制)介绍(一种通过角色来管理用户权限的访问控制模型)
  • AtCoder Beginner Contest 415
  • Linux系统中全名、用户名、主机名的区别