一、CF743C - Vladik and fractions (*1500)
目标:给定 \(n\),构造 \(x,y,z\) 满足 \(x \neq y, x \neq z, y \neq z\) 且 \(\dfrac{2}{n}=\dfrac{1}{x}+\dfrac{1}{y}+\dfrac{1}{z}\)。
Hint:\(\dfrac{1}{n}+\dfrac{1}{n+1}+\dfrac{1}{n(n+1)}=\dfrac{n+1+n+1}{n(n+1)}=\dfrac{2(n+1)}{n(n+1)}=\dfrac{2}{n}\)。
若 \(n=1\) 时会出现 \(x=1,y=2,z=2\) 的情况,无解。
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/hash_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#ifdef LOCAL
#include "algo/debug.h"
#else
#define debug(...) 42
#endif
typedef long long ll;
typedef pair < int, int > PII;
typedef int itn;
mt19937 RND_MAKER (chrono :: steady_clock :: now ().time_since_epoch ().count ());
inline ll randomly (const ll l, const ll r) {return (RND_MAKER () ^ (1ull << 63)) % (r - l + 1) + l;}
//#define int long long
const double pi = acos (-1);
//__gnu_pbds :: tree < Key, Mapped, Cmp_Fn = std :: less < Key >, Tag = rb_tree_tag, Node_Upadte = null_tree_node_update, Allocator = std :: allocator < char > > ;
//__gnu_pbds :: tree < PPS, __gnu_pbds :: null_type, less < PPS >, __gnu_pbds :: rb_tree_tag, __gnu_pbds :: tree_order_statistics_node_update > tr;
signed main () {
int n;
scanf ("%d", &n);
if (n == 1) printf ("-1\n");
else printf ("%d %d %d\n", n, n + 1, n * (n + 1));
return 0;
}
标签:__,pbds,题选,记录,dfrac,gnu,tree,构造,include
From: https://www.cnblogs.com/RB16B/p/17270228.html