Codeforces 346C Number Transformation II 构造

Codeforces 346C Number Transformation II 构造

大家好,又见面了,我是全栈君。

题目链接:点击打开链接

= = 990+ms卡过

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<vector>
#include<set>
using namespace std;
#define N 100010
#define L(x) (x<<1)
#define R(x) (x<<1|1)
#define ll int
ll n,m,k,a,b;
ll x[N];
bool cmp(ll z,ll y){return z>y;}
set<int>myset;
set<int>::iterator p;
int main(){
	ll i,j;
	while(cin>>n){
		myset.clear();
		for(i=1;i<=n;i++)scanf("%d",&j),myset.insert(j);
		cin>>a>>b;
		if(a==b){puts("0");continue;}
		n = myset.size();
		i = 1;
		for(p = myset.begin(); p!=myset.end(); p++,i++)x[i] = *p;
		sort(x+1,x+1+n,cmp);
		ll step = 0;
		ll l = 1;
		while(x[l]>a && l<=n)l++;
		while(x[l]>(a>>1) && (a-x[l])>(a-b))l++;
		if(l>n){cout<<a-b<<endl;continue;}

		while(a!=b){
			step++;
			ll now = 1, cha = a-b;

			for(i = l;i<=n;i++)
			{
				if(now>=x[i])break;
				ll tmp = a-((a/x[i])*x[i]);
				if(tmp<=now || tmp>cha)continue;
				now = tmp;
			}
			a-=now;
			while(x[l]>a&&l<=n)l++;
			while(x[l]>(a>>1) && (a-x[l])>cha)l++;
			if(l>n)break;
		}
		cout<<step+a-b<<endl;
	}
	return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115207.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea2021.12永久激活-激活码分享

    (idea2021.12永久激活)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
    133
  • QT5.12安装图文教程与安装成功后环境配置详细教程「建议收藏」

    QT5.12安装图文教程与安装成功后环境配置详细教程「建议收藏」Qt是一个完整的开发框架,其工具旨在简化桌面、嵌入式和移动平台的应用程序和用户界面的创建。非常多的公司喜欢用它来做界面。有很多的小伙伴们想要学习这门语言,但是目前网上的教程比较少,这里为大家介绍一下QT5.12安装的详细教程,希望对初学者有一定的帮助。QT5.10.0安装包下载QT版本官方下载地址:http://download.qt.io/archive/qt/进入官网,按如下图示进…

    2022年5月17日
    38
  • android开发之使用SQLite数据库存储

    SQLite 介绍SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite.SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQL

    2022年3月10日
    41
  • 通过命令查看linux 密码,linux查看用户密码(linux查看用户密码命令)

    通过命令查看linux 密码,linux查看用户密码(linux查看用户密码命令)linux查看用户密码(linux查看用户密码命令)2020-05-1513:18:30共10个回答1、用户名和密码的存储位置存储帐号的文件:/etc/passwd存储密码的文件:/etc/shadow2、可以使用cat、more、head、tail以及vim等命令查看或者修改,如下图所示:比如要查找系统中admin普通用户的密码,则执行:cat/etc/shadow|grep"admin"3、…

    2022年6月21日
    28
  • 什么是大数据开发?「建议收藏」

    什么是大数据开发?「建议收藏」♥️大数据开发是干什么的?大数据作为时下火热的IT行业的词汇,随之而来的数据开发、数据仓库、数据安全、数据分析、数据挖掘等等围绕大数据的商业价值的利用逐渐成为行业人士争相追捧的利润焦点。随着大数据时代的来临,大数据开发也应运而生。大数据开发其实分两种,第一类是编写一些Hadoop、Spark的应用程序,第二类是对大数据处理系统本身进行开发。第一类工作感觉更适用于dataanalyst这种…

    2022年5月4日
    121
  • 复习一周,京东+百度一面,不小心都拿了Offer

    复习一周,京东+百度一面,不小心都拿了Offer京东和百度一面都问了啥,面试官百般刁难,可惜我全会。

    2022年5月31日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号