C. Removing Smallest Multiples codeforces 1734C
Problem - C - Codeforces
题目大意:有一个长度为n的全排列数组s,和一个由0,1组成的字符串ss,ss[i]=0代表s的子序列t里没有i,1代表有,每次操作可以任选一个不大于n的整数k,在s中删除k的最小倍数,费用为k,问如果要把s变成t最小花费是多少
1<=n<=1e6,1<=k<=n
思路:对于s中的每个数,我们从1倍开始遍历他的倍数j,如果ss[i*j]=0,就在答案中加上i,同时给i*j做上标记,避免重复记录答案,如果遇到ss[i*j]=1,就直接退出循环去遍历下一个数
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
const int N = 1e6 + 5;
char tt[N];
bool cnt[N],cnts[N];
int main()
{int t;cin >> t;while (t--){int n;scanf("%d", &n);for (int i = 1; i <= n; i++){cnt[i] = 0;cnts[i] = 1;}getchar();//读入换行符for (int i = 1; i <= n; i++){scanf("%c", &tt[i]);if (tt[i] == '1'){cnt[i] = 1;//在t中出现cnts[i] = 0;//在s中不需要删除}}ll ans = 0;for (int i = 1; i <= n; i++){for (int j = 1; j * i <= n; j++){ll temp = i * j;//遍历i的所有倍数if (cnt[temp])//如果当前倍数在t中,就不能删了break;if (cnts[temp] == 0)//这个点被删过了或不需要删除continue;cnts[temp] = 0;//标记删过的点ans += i;}}printf("%lld\n", ans);}return 0;
}
C. Removing Smallest Multiples codeforces 1734C相关推荐
- Removing Smallest Multiples
我以为会超时的,结果没有.现在想想应该也是O(n)的算法,因为在倍数判断时候也每个数只能进入判断一次. 思路就是先找出一个数,若小于他的数乘它自己仍未访问,则删去. #include<bits/ ...
- Codeforces Round #822 (Div. 2) 题解
A. Select Three Sticks 题意为每一次可以选一个数加1或减1,问达到数组中有三个相等的数的最小步数 签到题,可能会有很多种解法 这里说其中一种 我们把整个数组排序,然后对于每一个三 ...
- Codeforces Round #656 (Div. 3) F. Removing Leaves 贪心 + 模拟
传送门 文章目录 题意: 思路: 题意: 思路: 首先有一个贪心策略就是每次都找一个叶子节点最多的点,让后删掉他的kkk个叶子节点,现在我们就来考虑如何模拟这个过程. 我们整一个vector<s ...
- 暴力+构造 Codeforces Round #283 (Div. 2) C. Removing Columns
题目传送门 1 /* 2 题意:删除若干行,使得n行字符串成递增排序 3 暴力+构造:从前往后枚举列,当之前的顺序已经正确时,之后就不用考虑了,这样删列最小 4 */ 5 /************* ...
- 【Codeforces - 632C】The Smallest String Concatenation (对string巧妙排序)
题干: You're given a list of n strings a1, a2, ..., an. You'd like to concatenate them together in som ...
- Letters Removing CodeForces - 899F (线段树维护序列)
大意: 给定字符串, 每次删除一段区间的某种字符, 最后输出序列. 类似于splay维护序列. 每次删除都会影响到后面字符的位置 可以通过转化为查询前缀和=k来查找下标. #include <i ...
- Codeforces Round #506 (Div. 3) - D. Concatenated Multiples(思维)
题目链接 题意 给你N个数字和一个K,问一共有几种拼接数字的方式使得到的数字是K的倍数,拼接:"234"和"123"拼接得到"234123" ...
- Codeforces Round #701 (Div. 2) D. Multiples and Power Differences 思维构造
传送门 题意: 给定一个矩阵aaa,让你构造一个矩阵bbb,要求矩阵bbb的每个元素是aaa对应位置元素的倍数,且矩阵bbb的每两个相邻元素相差为k4(k>=1)k^4(k>=1)k4(k ...
- Codeforces Round #666 (Div. 2)C - Multiples of Length(错位相减)
problem 给出N个数,可以进行三次操作, 每次选中一个区间,区间里任意一个元素可以加上一个区间长度的倍数(并且加的数可以互相不同) 让所有数变成0 求方案 solution 好久没打CF了,签到 ...
- 【Codeforces】Round #375 (Div. 2)
Position:http://codeforces.com/contest/723 我的情况 啊哈哈,这次raiting肯定要涨,接受过上次的教训,先用小号送肉,大号都是一发切,重回蓝咯 结果... ...
最新文章
- parse() got an unexpected keyword argument 'transport_encoding'
- boost之对象池使用实例
- 新一代球王!日本推AI篮球机器人,命中率接近100%!
- 【WEB API项目实战干货系列】- API访问客户端(WebApiClient适用于MVC/WebForms/WinForm)(四)
- python 管道 异步读取 select_python之异步select解析
- 解决git关联的的文件颜色、小图标
- Ant Design Landing 产品首页的设计神器
- 机器学习经典算法决策树原理详解(简单易懂)
- linux启动mqtt_MQTT--linux安装部署(CentOS)
- 完美运动框架封装函数startMove
- 阻止滑动事件_重温DOM事件流,捕获、冒泡、useCapture、passive
- WindowsXP_KB909667_x86_ENU
- FL Studio21.0中文版本FL水果娘发布更新
- select搜索功能实现
- 关于爆仓那些事,出现爆仓就是黑平台?
- 数据库迁移 软件Spoon Kettle环境搭配(本人踩过的坑)
- 云服务器代理平台安装教程
- python在windows中备份文件并压缩的解决办法
- 应用层——HTTP协议
- 70道关于JavaScript的常见面试题解答