Educational Codeforces Round 85 (Rated for Div. 2) D. Minimum Euler Cycle(字典序最小的欧拉回路)

Grace ·
更新时间:2024-09-20
· 671 次阅读

目录传送门题意:思路:代码: 传送门 题意:

在这里插入图片描述

思路:

构造的欧拉回路是
1 2 1 3 1 4 1 5……1 n
2 3 2 4 2 5……2 n
3 4 3 5……3 n
……
n-1 n
1
一共n*(n-1)+1个数
二分取[L,R]的数即可

代码: #include #include #include #include #include #include #include #include #include #include #define pb push_back #define lb lower_bound #define ub upper_bound #define fi first #define se second #define all(x) (x).begin(),(x).end() #define SZ(x) ((int)(x).size()) #define debug(x) cout<<x<<endl #define rep(i,a,b) for(int i=a;i=b;i--) typedef long long ll; using namespace std; const int MAXN=1e5+50; const int inf=0x3f3f3f3f; const int mod=1e9+7; //::iterator it; ll a[MAXN]; int main() { std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); ll n,l,r; int t; cin>>t; while(t--){ cin>>n>>l>>r; for(int i=1;i<=n-1;i++)a[i]=a[i-1]+2*(n-i); for(ll i=l;ia[n-1]){ cout<<1<<" "; continue; } auto pos=lower_bound(a+1,a+n,i)-a; //cout<<pos<<endl; int k=i-a[pos-1]; if(k&1)cout<<pos<<" "; else cout<<k/2+pos<<" "; } cout<<endl; } return 0; } /* */
作者:_Alexander



回路 字典序 字典 CodeForces rated 欧拉 欧拉回路 round div

需要 登录 后方可回复, 如果你还没有账号请 注册新账号