問題のP6161 [[Cnoi2020]高次元]へのソリューション

この質問時に理由は様々な形而上学的なエラーのIのレース、最後に、半分を投げるにつながる\(20 \)わずか数分後に\(\ ldots \ ldots \)

まず第一に、この質問が長すぎるったらしいですが、実際にはタイトルはそれを簡単にするために意図され、我々は見つけるでしょう。ため\(I \)寸法、開始と終了経路長が除去(1-I \)\、互いに異なるこれらのノードを必要とします。私たちは、分析(I \)\実際には次元が\(2 ^ I-2 \ ) ノード、私たちは、あなたは結果がわかります彼らに部門を置く(I \)\、であることが\(I \)パス。(おそらくよりも私はYYで盲目です)

どのように各パスを取得するには?突然それを考えるのは、私はゲーム(花火)の時にフラッシュメソッドを使用する必要がありますので、列挙し、リピートするかどうかを決定するハッシュテーブルで、実際の空間と時間がかかり、高価なことですあり


一般的な考え方は、一次元アレイ、添え字を使用することである\(I \)に相当する動作経路内のノード\(I \)の寸法を変更することができます初期化される(0 \)\最初に対応した、\(1 \)の寸法。最初の動作の後、それが追加される(1 \)\観察した後、我々は、それを見つけ、そして、パスを残して、\(I + 1} F_ {\)その次元に対応する\(F_iと\)の次元プラス\(1 \) あなたは対象の要件を満たすことができます。

しかし、あなたが行くように追加されている場合は、問題がある可能性があります(F_iと\)\遅かれ早かれ超えます\(N- \を)方法は?そして、金型聖歌を取ります!すなわち(1 + F_ {I} =(F_iと+。1)\ N-MOD \)\

同様に、操作がされるように(F_iと\取得F_iと+。1 \)\

この方法の原則として、私は、ゲームでちょうど推測を知りません。誰もdalaoは、このメソッドを証明したい場合は、自分で見ることができます。私は将来の証拠を考える場合、それがいっぱいになります。

あなたはまだコードと併せて、理解されていない場合は、より良い食べます。

ACコード:

#include<bits/stdc++.h>
using namespace std;
long long n,f[65];    
long long last;  //终点的压缩坐标。 
string now;  //now 为当前节点的坐标。 
long long po(long long x)  //手打一个计算幂的函数。 
{
    long long re=1;
    for(register long long i=0;i<x;i++) re*=2;
    return re;
}
long long zip(string a)   //如题,微改的压缩函数。 
{
    long long size=a.length();
    long long h=0;
    for(register long long i=size-1;i>=0;i--) 
         if(a[i]=='1')
            h+=po(i);
    return h;
}
int main()
{
    cin>>n;
    cout<<n<<endl;   //n 条路径 。 
    last=po(n)-1;  
    for(register long long i=0;i<n;i++)
    {
        cout<<0<<" ";  //起点 
        for(register long long j=0;j<n;j++)
            now+='0';  //这是 now 的初始化,将坐标赋为 0。 
        for(register long long j=1;j<n;j++)
        {
            now[f[j]]='1';   //精髓,将需改变的维度改变。 
            f[j+1]=(f[j]+1)%n;  //求出 f[i+1]。 
            f[j]=(f[j]+1)%n;    //为防止下一条路径重复,本身也要改变。 
            long long g=zip(now);
            cout<<g<<" ";  //输出压缩后的路径。 
        }
        cout<<last<<endl;
        now.clear();  //记住!!!一定要清空。 
    }
    return 0;
}

PS:私は常に理解していない、この質問です:私はゲームを起動コンピュートパワーにcmathの捕虜機能ではなく、WAの三点であったであろうし、次に電源機能を求めているカフ付き(大前に霧

おすすめ

転載: www.cnblogs.com/win10crz/p/12404466.html