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)
上一篇 2022年2月7日 下午4:00
下一篇 2022年2月7日 下午5:00


相关推荐

  • swagger根据注解屏蔽大量不需要的接口

    swagger根据注解屏蔽大量不需要的接口

    2021年5月17日
    168
  • 新公司工作

    新公司工作

    2021年8月27日
    287
  • 三条平行线与等边三角形

    三条平行线与等边三角形偶然在网上看到一道有意思的几何题,仔细思考了一下,确实有点趣。原题是:平面上有任意三条平行线,使用尺规则作图画出一个等边三角形,使三角形的三个顶点分别在三条平行线上。画法有好多种,搜集网上的一些画法,先介绍4种,再讨论一下三角形连长与平等线距离的关系,最后讨论下第二种画法的变化(三角形边长的唯一性未证明)。第一种:作图顺序:(颜色顺序:红—>绿—>蓝—>紫)1.在三条…

    2026年1月30日
    6
  • jpa/springdata(1)jpa

    jpa/springdata(1)jpa

    2021年6月13日
    98
  • 深入理解static关键字

    深入理解static关键字提到static关键字,相信大家都不陌生,这是相对比较难以理解的一个关键字,相信各位也都能深深感受的到!本篇文章将好好总结一下static这个关键字。文章目录1、static存在的主要意义2、static的独特之处3、静态变量和实例变量的概念4、静态变量和实例变量【重点常用】5、static静态方法6、static代码块7、static应用场景1、static存在的主要意义static的主要…

    2025年6月5日
    5
  • 第二课:基于树莓派的10个经典项目(树莓派能做什么)[通俗易懂]

    第二课:基于树莓派的10个经典项目(树莓派能做什么)[通俗易懂]第一课,我们解决了以下几个问题,即:1)树莓派长什么样2)为什么叫树莓派3)树莓派来自哪个国家4)树莓派的创始人是谁5)树莓派的使命6)树莓派的销量7)树莓派基金组织第二课:我们来了解树莓派能做什么树莓派能做什么,莫过于来看一遍树莓派的10个经典项目的视频了,…

    2022年6月10日
    53

发表回复

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

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