luogu 5560

tech2025-09-23  20

题目

题目大意:一棵树有n个结点,每个点的值分别是 i 2 − 1 i^2-1 i21,每条边的权值是 g c d ( i 2 − 1 , j 2 − 1 ) gcd(i^2-1,j^2-1) gcd(i21,j21) 求树边总权值的最小值 题目链接:https://www.luogu.com.cn/problem/P5560

思路

暴力打表可以发现 只有4 10需要特判 其他都是 n − 1 n-1 n1

代码

#include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #include<stack> #include<set> #include<vector> #include<iomanip> #include<list> #include<bitset> #include<sstream> #include<fstream> #include<complex> #include<algorithm> #if __cplusplus >= 201103L #include <unordered_map> #include <unordered_set> #endif #define int long long using namespace std; const int INF = 0x3f3f3f3f; signed main(){ ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); int t; cin>>t; while(t--){ int n; cin>>n; if(n==4) cout<<5<<endl; else if(n==10) cout<<11<<endl; else{ cout<<n-1<<endl; } } return 0; }
最新回复(0)