USACO Hamming Codes 解題報告

2021-05-22 08:26:32 字數 857 閱讀 2579

資料小,暴力搜尋可以搞定。但是推薦使用dfs,每個節點(數)有取與不取兩個分支。注意: 0是必須出現的。

證明如下:

最終得到的結果序列中,0是必須出現的,證明如下:

如果存在另乙個滿足要求的結果序列s=,其最小值為a1 = n > 0,

那麼序列s' = s ^ n 是滿足條件的最小解,且首元素為0 /*

id: xpli1

prog: hamming

lang: c++

*/#include

#include

#include

#include

#include

using namespace std;

#define out cout

#define in  cin

ofstream fout ("hamming.out");

ifstream fin ("hamming.in");

int n,b,d;

bool ham[256][256] = ;

int res[65];

int dat[65];

int max;

bool finded = false;

bool ham_dis(int a,int b)

return dis < d ? false : true;}

void init()                                      

if(dep == max) return;      

int i;

for(i=0; i

dfs(k,dep+1); }

void output()

USACO Closed Fences 解題報告

幾何題看著就很有畏懼感。這裡用的是最 的演算法,時間複雜度應該在n 2。還沒看別人的解題報告,不過我猜nlogn的解法是有的。比如判斷乙個fence是不是valid的時候,這裡將所有的線段兩兩比較,看是否相交。但是有個叫line sweep的演算法,可以在nlogn的時間複雜度內完成。既然accep...

Wiggle Subsequence解題報告

這道題和最長子序列,divisible subset題目類似,都可以用o n2 的時間複雜度完成。可以想象,對於第i個數,dp i dp j 1,當且僅當dp j 1 dp i 而且nums j 和nums i 的差值和j所處位置的差值符號相反。所以,如下 class solution if dp ...

The XOR Largest Pair 解題報告

描述 在給定的n個整數a1,a2 an中選出兩個進行xor運算,得到的結果最大是多少?輸入格式 第一行乙個整數n,第二行n個整數a1 an。輸出格式 乙個整數表示答案。樣例輸入 31 2 3 樣例輸出 資料範圍與約定 對於100 的資料 n 10 5,0 ai 2 31。解題思路 由於只要求在n個數...