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可以說恰到好處,除此以外,整個鍵盤還是給我不少驚喜的...