2015 2016 下半學期 第一周 訓練

2021-07-10 12:46:20 字數 2686 閱讀 9691

1、uva1423

題意:給出乙個矩陣表示乙個序列任意區間內區間和的正負,構造乙個序列滿足這個矩陣。

題解:首先看到給了區間和,第乙個想法就應該是轉化到字首和的差,轉化之後發現序列具有一種顯見的偏序關係,然後這種偏序關係輕易地就想到了轉換為圖上問題去解決,這種思想在差分約束中也比較常見,以後有時間詳細總結。然後考慮到了topo序,如果我們每次要求topo序為i的字首和與比它topo序大的字首和中最小的字首和的差距不大於1,最大的字首和數為10,最後求出來的數就一定在[-10,10]裡面。我們把pre[i]向比它小的pre[j]建有向邊,然後topo序在後的肯定不大於topo序在前的,這是顯然的, 然後假設我們已經把topo序前k大的求出來了,求到第k+1大的時候,把它設成pre[k]-1並不會導致無解,如果把最大的pre設成10,找到乙個topo序更靠後的,把它的值設成9,下乙個設成8……就是這種感覺。我們就可以把topo序第k大的pre設成第k-1大的pre值-1,因為是topo排序,不會影響到pre之間的大小關係。

**

#include#include#include#include#include#include#include#include#include#include#include#include#define ll long  long

#define db double

#define eps 1e-15

#define inf 1e10

using namespace std;

int t,n;

vectorg[15];

int deg[15];

char s[305];

int ans[15];

void add(int from,int to)

void init()

void sort()

vectorp;

int main();

struct p

bool operator == (const p& a) const

};p s,e,tmpp,np;

int n,t,ans,c,nxt;

bool vis[4][max*max];

bool fnd(int cur,int i,int& nxt)

}return 0;

}int isc(int xx,int yy)

bool hasc(int pos,int time)

if (str[i][j]=='t')}}

if (can())

for (int i=0;i<5;i++)

if (fnd(tmpp.pos,i,np.pos)==true)

else np.time=tmpp.time+1;

if (vis[np.time%4][np.pos]==0)}}

}else ans=-1;

printf("case #%d: %d\n",cas,ans);

}return 0;

}

5、codeforces 405e

題意:給出乙個無向圖問你能不能把圖里原來邊長為1的邊接一接變成邊長為2連線三個點的邊並覆蓋全圖。

題解:這個題看錯題了,看了好久都沒理解題意。以為是把原來的邊剖開然後找點接上,怎麼想都想不明白。其實就是對點進行dfs,找到乙個點發現這個點有落單邊,則把這個落單邊連的終點和搜的這個點和上條邊連的點輸出,有時候這個點是乙個類似於中心的點,這樣就把其他連著它的點都丟進這個點專屬的佇列裡,然後輸出就行。

**

#include#include#include#include#include#include#include#include#include#include#include#include#define ll long  long

#define db double

#define eps 1e-15

#define inf 1e10

using namespace std;

const int n=100010;

int from[200020],to[200020];

int edge[200020],head[200020];

int n,m,cnt;

bool vis[200020];

void add(int x,int y)

int dfs(int x,int f)

}while (q.size()>=2)

while (!q.empty())

return 0;

}int main()

if (m&1)

dfs(1,-1);

}return 0;

}

總結:

1、需要注意一下其他問題到圖論問題的轉化上,比如差分約束和第一題這種帶偏序關係的題目。

2、注意**實現的細節,第四題為了使用結構體的優先佇列,過載了運算子,卻沒有傳進去引用,容易gg,而且最好不要這麼寫,優先佇列有三個引數,可以自己寫個仿函式傳進去。同樣是第四題,沒有注意函式定義的順序,起初定義的find函式在引用函式的下面,所以編譯器自動給我用了類裡的find函式,導致莫名ce。

3、注意讀題。

大一下半學期

這一學期過的怎麼說呢,沒有想象中那麼勵志,開學前三個月也算正常,但接下來的日子頹勢漸增,演算法沒學多少,現在還處在刷水題的階段,稍用一些演算法的題就要想好久,實驗室最近也不能住人,6月29號考完c語言就回家了,然後7月24開始多校聯合,暑假是提公升自己能力的絕佳時機,寒假的時候就沒有好好利用,只有趁...

python第一周心得 Python第一周總結

變數 不能為系統自帶的內建函式,如def,help,sum等等 變數不能已下劃線數字來開頭,對大小寫敏感 變數後直接接數字,則被賦值為整型,如何加引號則賦值型別為字串str型別 a 1 整型 int b 2 字串 str 用print 直接輸出 a hello print a 在 使用者想要同時輸出...

第一周周記

下面是整個文章的第二部分,日常的安利 這周的話,除了整體恢復正常,週末我也購置了我的第一塊外接鍵盤,這裡的話我選擇的是國產的靜電容鍵盤niz的plum 87鍵鍵盤。今天拿到這個鍵盤第一天,整體使用了一下,尺寸配合著15寸的蘋果macbook pro可以說恰到好處,除此以外,整個鍵盤還是給我不少驚喜的...