首页 > 其他分享 >暑假集训3

暑假集训3

时间:2022-08-15 21:22:52浏览次数:51  
标签:return gcd int exgcd swap 暑假 集训

去年暑假打过一次,但是当时太菜,今天看到之前写过,好奇多少分,考后交了一发,发现自己是真的菜

然后,就算开了个坑吧,四道题。。。

A. 数列

\(exgcd\)板子

然后,\(exgcd\)咋用来着?

滚回去学数论基础了

code
#include <cstdio>
using namespace std;
#define int long long
int min(int x, int y) { return x < y ? x : y; }
int max(int x, int y){return x > y ? x : y;}
int abs(int x) { return x < 0 ? -x : x; }
void swap(int &x, int &y){x ^= y; y ^= x; x ^= y;}
int exgcd(int a, int b, int &x, int &y){
	if(b == 0){
		x = 1; y = 0;
		return a;
	}
	int gcd = exgcd(b, a % b, y, x);
	y = y - a / b * x;
	return gcd;
}
signed main(){
	int n, a, b;
	scanf("%lld%lld%lld", &n, &a, &b);
	int x, y; if(a > b)swap(a, b);
	int gcd = exgcd(a, b, x, y);
	b = b / gcd; a = a / gcd;
	x = (x % b + b) % b;
	int ans = 0;
	bool flag = 1;
	for (int i = 1; i <= n; ++i){
		int now; scanf("%lld",&now); now = abs(now);
		if(now % gcd)flag = 0;
		if(flag){
			now = now / gcd;
			int nx = (x * now % b + b) % b;
			int ny = (now - a * nx) / b;
			ans += min(abs(nx) + abs(ny), abs(nx - b) + abs(ny + a));
		}
	}
	if(flag)printf("%lld\n", ans);
	else printf("-1\n");
	return 0;
}

标签:return,gcd,int,exgcd,swap,暑假,集训
From: https://www.cnblogs.com/Chencgy/p/16589663.html

相关文章

  • 2022牛客暑假第七场C、F、J、K
    C-ConstructiveProblemsNeverDie_"蔚来杯"2022牛客暑期多校训练营7(nowcoder.com)容易知道,只要A中的数不是全部相同,就一定有解。我们思考如何构造:如果A中的数是一......
  • hfyz 集训随笔
    大概在中考分数刚出来的时候一中就通知要搞集训了正好我有zr集训,就打算鸽了(大概在集训开始前被拉倒了群里然后发现有wty和hzy来,有点想去了最后还是决定zr比赛后来在集......
  • P2619 [国家集训队]Tree I(K 度限制生成树 二分)
    P2619[国家集训队]TreeI一张\(n\)个点\(m\)条边的带权无向联通图,每条边是黑色或白色。求一棵最小权的恰好有\(need\)条白色边的生成树,题目保证有解。\(n\le5\t......
  • 2022高考集训2
    2022高考集训2 我在6号早上冷水洗澡加跑操,那水冷到什么程度,我把校服衬衫穿到身上的时候感受到一股温暖就离谱。但是没办法,我这每天洗澡已经是一种病态的生活习惯了,我这......
  • 暑假Java自学(7)
    想要取得系统时间,使用System.currentTimeMillis()方法,返回的是long类型的整数。Date有两个构造函数可以用,一个可使用epoch毫秒数构建,另一个为无自变量构造函数,内部亦是使......
  • 暑假第七周
    这周是暑假第七周,这一周我回了趟老家,所以学的东西比较少,主要学习了JAVA的一些基本语法。1.break与continue语句:break在任何循环语句的主体部分,均可用break控制循环的流程......
  • 2022.8.7暑假第七周博客
    2022.8.7构造方法我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的se......