CH Position 數列 打表找規律 貪心

2021-06-16 23:46:49 字數 2044 閱讀 1412

總時限10s

記憶體限制

256mb

出題人sliverriver

提交情況

2/7

【題目描述】

棟棟非常喜歡數列.

數列中有n個數且兩兩不同,並且該數列中所有的數都屬於[0,n],那這個數列即為極好數列。

對於每兩個極好數列a,b都有契合度,契合度的計算公式如下.

契合度 = (a0 xor b0) + (a1 xor b1) + ... + (an xor bn)

棟棟想知道,對於乙個正整數n和數列a,數列b的最大的契合度為多少.

【輸入】

輸入檔案為sequence.in

輸入共2行,乙個正整數n,第二行對數列a進行描述.

【輸出】

輸出檔案為sequence.out

輸出共2行.

第一行輸出最大美好度.

第二行輸出最大美好度所對應的唯一b數列.

【樣例輸入輸出】

sequence.in

sequence.out

10 1

21 0

【樣例解釋】

對於n = 1,有兩種情況(0,1)和(1,0)

對於(0,1):0 xor 0 = 0,1 xor 1 = 0.所以第一種的美好度為0.

對於(1,0):1 xor 0 = 1,0 xor 1 = 1.所以第二種的美好度為2.

【資料範圍】

對於40%的資料,n≤12.

對於100%的資料,n≤100,000.

【時間空間限制】

1s,256m

這題是打表找規律??

吸取經驗教訓,先打乙個。。。

#include#include#include#include#include#include#include#include#includeusing namespace std;

#define for(i,n) for(int i=1;i<=n;i++)

#define fork(i,k,n) for(int i=k;i<=n;i++)

#define rep(i,n) for(int i=0;i=0;i--)

#define forp(x) for(int p=pre[x];p;p=next[p])

#define lson (x<<1)

#define rson ((x<<1)+1)

#define mem(a) memset(a,0,sizeof(a));

#define memi(a) memset(a,127,sizeof(a));

#define memi(a) memset(a,128,sizeof(a));

#define inf (2139062143)

#define f (100000007)

#define maxn (100)

long long mul(long long a,long long b)

long long add(long long a,long long b)

long long sub(long long a,long long b)

typedef long long ll;

int n,a[maxn],ans[maxn],st[maxn],sum=0;

bool b[maxn]=;

void dfs(int l,int tot)

rep(i,n+1) if (!b[i]) b[i]=1,st[l]=i,dfs(l+1,tot+a[l]^i),b[i]=0;

}int main()

long long add(long long a,long long b)

long long sub(long long a,long long b)

typedef long long ll;

int n,a[maxn],b[maxn];

bool used[maxn]=;

int main()

ll ans=0;

rep(i,n+1) ans+=i^b[i];

cout<

打表找規律

題解 此題資料規模較大,如果運用直接暴力方法顯然不可行。對於公式 f n a f n 1 b f n 2 後者只有7 7 49 種可能,為什麼這麼說,因為對於f n 1 或者 f n 2 的取值只有 0,1,2,3,4,5,6 這7個數,a,b又是固定的,所以就只有49種可能值了。由該關係式得知每一...

A Funny Game 打表 找規律

n枚硬幣排成乙個圈。alice和bob輪流從中取一枚或兩枚硬幣。不過,取兩枚時,所取的兩枚硬幣必須是連續的。硬幣取走之後留下空格,相隔空格的硬幣視為不連續。alice開始先取,取走最後一枚硬幣的獲勝。當雙方都採取最有策略時,誰會獲勝?不管,先爆搜找規律。includeusing namespace ...

藍橋杯 Fibonacci數列(打表)

fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入包含乙個整數n。資料規模與約定 1 n 1,000,000。輸出一行,包含乙個整數,表示fn除以10007的餘數。55 在本題中,答案是要...