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的数列,数 ...
随机推荐
- java生成二维码的几种方式
1: 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode/ ...
- Mybaits查询返回值是List类型的
查询返回值是list类型的 1 首先在接口中写方法 public interface EmployeeMapper { public List<Employee> getEmpsByLas ...
- 三十九、python面向对象一
A.python面向对象 1.面向对象基础:面向对象三个特性:封装,继承,多态C# java 只能用面向对象编程Ruby,python 函数+面向对象 函数式编程:def 函数def f1(a): r ...
- 7、Shiro加密和加盐
这里我们以md5加密方法举例,首先我们写一个main方法测试我们的密码经过md5加密之后的得到什么样的字符串: /** * 书写方法测试Md5Hash将密码“houru”加密之后的密文 * 但是仅仅加 ...
- python语言优势
与Java等语言比较起来,最大优点是语法很简洁,很多功能像octave和matlab,能够对数组或矩阵进行高效处理. 比如一个数组求和,这里只要一句话sum(a),Java等语言就需要循环.还有矩阵的 ...
- BFC块级格式
BFC块级格式上下文,独立的一个渲染区域 1.同一个BFC的两个相邻盒子间的margin会重叠(垂直方向): 2.BFC内部的盒子在垂直方向上会一个接一个的放置: 3.每个子元素的左外边距与包含块的左 ...
- 阶段3 1.Mybatis_07.Mybatis的连接池及事务_3 mybatis连接池的分类
2.mybatis中的连接池 mybatis连接池提供了3种方式的配置: 配置的位置: 主配置文件SqlMapConfig.xml中的dataSourc ...
- 【ABAP系列】SAP ABAP 运算符
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 运算符 前 ...
- 梳理检测论文-Refinement Neural Network
Single-Shot Refinement Neural Network for Object Detection 目录 1. motivation 2. RefineDet 解析(Network ...
- itchat监听微信撤回消息
import itchat from itchat.content import * import re msg_infomation = {} # 监听发送消息 @itchat.msg_regist ...