At grand 022 GCD序列构造 dp/floyd二进制变换最少费用
A
diverse words指的是每一个字母在单词中出现的次数不超过1的单词
题目要求你求出字典序比当前给定单词大的字典序最小单词
1.如果给定的单词长度小于26 就遍历一次在单词尾部加上字典序最小的一个字母
2.如果单词的长度等于26 当且仅当单词为 zyxwvutsrqponmlkjihgfedcba 时没有答案 我们从最后一个字母开始消除如果到一个字母有比他大的就替换掉
#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int maxn = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
int zimu[];
int sum = ;
map<char, int> mp;
int main()
{
string now;
cin >> now;
string ans = "";
for (int i = ; i < now.size(); i++)
{
zimu[now[i] - 'a']++;
}
if (now.size() < )
{
cout << now;
for (int i = ; i <= ; i++)
{
if (!zimu[i])
{
cout << (char)('a' + i);
return ;
}
}
}
for (int i = now.size() - ; i >= ; i--)
{
int cnt = now[i] - 'a';
for (int j = cnt + ; j <= ; j++)
{
if (!zimu[j])
{
for (int k = ; k < i; k++)
{
cout << now[k];
}
cout << (char)('a' + j);
return ;
}
}
zimu[now[i] - 'a']--;
}
cout << - << endl;
}
B
要求你构造一个序列 序列总和与每一项的GCD不等于1 但总GCD为1 所有数不能超过300000
题目案例有提示 但是还是要你自己推 最后满足要求的只能是2,3两个数 2,3的LCM为6所以我们的序列总和一定要是6的倍数
我们把2的倍数三个为一组 这样就是6的倍数 3的倍数两个为一组 这样也是6的倍数
第一种情况:当N%3==0 即取2的倍数三个为一组可以全部取完的时候 去掉两组给3的倍数 这样才使总GCD为1
第二种情况:当N%3不为0 为2的时候 我们直接取一组3的倍数即可满足条件 为1的时候全部取3的倍数的话总和为6*N+3 我们需要消去这个3 需要再加一个3的倍数 又因为3的倍数是6*M+3 所以我们需要消去2的倍数里面的一个6的倍数
#include <bits/stdc++.h>
#include <algorithm>
#include <vector>
using namespace std;
typedef long long ll;
int main()
{
int n;
cin >> n;
if (n == )
{
cout << "2 5 63" << endl;
return ;
}
if (n == )
{
cout << "2 4 6 12 3 9" << endl;
return ;
}
int two = n / ;
if (two > )
{
two = ;
}
else
{
if (n % == )
{
two -= ;
}
}
int number2 = two * - ((n - two * ) % == );
int number3 = n - number2;
for (int i = ; i <= number2; i++)
{
cout << * i << " ";
}
for (int i = ; i <= number3; i++)
{
cout << ( * i - ) * << " ";
}
cout << endl;
}
At grand 022 GCD序列构造 dp/floyd二进制变换最少费用的更多相关文章
- 九度OJ 1262:Sequence Construction puzzles(I)_构造全递增序列 (DP)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:118 解决:54 题目描述: 给定一个整数序列,请问如何去掉最少的元素使得原序列变成一个全递增的序列. 输入: 输入的第一行包括一个整数N( ...
- 贪心/构造/DP 杂题选做Ⅲ
颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...
- 贪心/构造/DP 杂题选做Ⅱ
由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 ...
- 【2】【leetcode-105,106】 从前序与中序遍历序列构造二叉树,从中序与后序遍历序列构造二叉树
105. 从前序与中序遍历序列构造二叉树 (没思路,典型记住思路好做) 根据一棵树的前序遍历与中序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [ ...
- [leetcode]从中序与后序/前序遍历序列构造二叉树
从中序与后序遍历序列构造二叉树 根据一棵树的中序遍历与后序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 po ...
- codevs 1962 马棚问题--序列型DP
1962 马棚问题 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 每天,小明和他的马外出,然后他们一边跑一边玩耍.当他们结束 ...
- LeetCode 中级 - 从前序与中序遍历序列构造二叉树(105)
一个前序遍历序列和一个中序遍历序列可以确定一颗唯一的二叉树. 根据前序遍历的特点, 知前序序列(PreSequence)的首个元素(PreSequence[0])为二叉树的根(root), 然后在中 ...
- 括号序列的dp问题模型
括号序列的dp问题模型 Codeforces314E ◦给定一个长度为n的仅包含左括号和问号的字符串,将问号变成左括号或 右括号使得该括号序列合法,求方案总数. ◦例如(())与()()都是合法的括号 ...
- [BZOJ 3992] [SDOI 2015] 序列统计(DP+原根+NTT)
[BZOJ 3992] [SDOI 2015] 序列统计(DP+原根+NTT) 题面 小C有一个集合S,里面的元素都是小于质数M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数 ...
随机推荐
- 关于Qt 构建套件(Kit) 编译器 自动识别不正确 不能修改的问题
当系统内有多个Qt的版本的时候,QtCreater会自动识别出 编译器,Qt版本,和构建套件(Kit),但是有时候会发现,识别出来的路径不对,而且不能修改. 当出现这是问题的时候,可以到 qtcrea ...
- Gridview中显示的值根据数据库中带出的值作更改
前台页面对Gridview增加事件 OnRowDataBound="GridView1_RowDataBound"protected void GridView1_RowDataB ...
- STOMP协议详解
STOMP协议详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.STOMP协议介绍 STOMP即Simple (or Streaming) T ...
- Python 写 ACM 题目的一些技巧
目录 输入输出 input() 输入 split() 用于输入 strip() 输入清理 print() 输入 sort 排序 输入输出 input() 输入 Python3 中 input() 函数 ...
- nginx调优buffer参数设置
内容来自 https://blog.tanteng.me/2016/03/nginx-buffer-params/.有空再详细了解 Nginx性能调优之buffer参数设置 打开Nginx的error ...
- 阶段3 1.Mybatis_11.Mybatis的缓存_7 触发清空一级缓存的情况
如果数据库的数据和一级缓存的数据不一致了,怎么做到同步的呢? 增加一个更新 用户信息的方法 增加更新的节点配置 测试类增加测试方法.先查询id为41的 然后更新了41的数据.再次查询41的数据 先把更 ...
- 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_7 Mybatis中使用代理Dao的执行过程分析
另外一种情况,不写Mybits的dao实现类的情况. 切换工程到CRUD的工程.这里面是不写dao实现类的方式 进入到GetMaper里面.这里是创建代理对象 去找SqlSession的实现类Defa ...
- 动态网页基础——JSP
WEB项目的目录结构 META-INT WEB-INF 对外都是不可访问的,不可把index.jsp/index.html 放这 JSP JSP是为了简化Servlet的工作出现的替代品,Servl ...
- vue封装一些常用组件loading、switch、progress
vue封装一些常用组件loading.switch.progress github文档https://github.com/zengjielin/vue-component-library loadi ...
- python+selenium控制浏览器窗口(刷新、前进、后退、退出浏览器)
调用说明: driver.属性值 变量说明: 1.driver.current_url:用于获得当前页面的URL 2.driver.title:用于获取当前页面的标题 3.driver.page_so ...