先考慮出發點在x,先手玩以x為根這棵子樹的答案。
首先不難證明,a[x]變大,不會變得更劣。
那我們考慮先手拿完乙個石頭後走向乙個a[son]>=a[x]的兒子,這樣肯定是不明智的,因為假如對手把你推回x,你當然不能和他一直這樣推來推去(你肯定先死),所以你會選擇去別的兒子,但這當然不如一開始就去別的兒子(因為a[x]更大)。
再考慮先手拿完乙個石頭後走向乙個a[son]
#include
#include
#include
#define ll long long
using namespace std;
const int maxn=1000010;
int n,a[maxn],s[maxn];
bool f[maxn];
struct edge
*con[maxn];
int read()
return x;
}void ins(int x,int y)
void dfs(int v,int fa)
}void dfs2(int v,int fa)
}int main()
考場怕爆棧dfs序版:
#include
#include
#include
#define ll long long
using namespace std;
const int maxn=1000010;
int n,a[maxn],s[maxn],fa[maxn],st[maxn],dfn[maxn],tim;
bool f[maxn];
struct edge
*con[maxn];
int read()
return x;
}void ins(int x,int y)
void dfs()
}for(int i=n;i>1;i--)其實並不需要這麼麻煩。考慮一條邊(x,y),x,y之間只會轉移一次(因為a[x]
#include
#include
using namespace std;
const int n=1e6+10;
inline int read()
while(ch>='0'&&ch<='9')
return x*f;
}struct nodetree[n<<2];
int num[n],head[n],cnt=0,vis[n],n,can[n];
void add(int x,int y);
head[x]=cnt;
}int dfs(int u,int fa)
}return can[u];
}int main(){
n=read();
for (register int i=1;i<=n;++i) num[i]=read();
for (register int i=1,x,y;i
感覺好多了
昨天賈工又給分任務了,讓我做列印水費通知單,這次好多了,加班也有感覺了,怎麼說有感覺呢?如果你是乙個武林高手,可是找不到對手,你應該很鬱悶吧,為什麼啊,不知道打誰啊?以前我也是,但我可不是什麼高手啊,就是分給我任務的時候,我摸不著頭腦啊,沒有什麼思路,就是給我現成的,我也一會半會的理解不了別人的思路...
我開發的「小靈」,自認為比微軟「小冰」好多了
從技術實現上來講,這個真的沒有多高階,從市場反饋來講,小冰 的回答也就是中規中矩,並無多大亮點。不是我自賣自誇,小冰出來之後,女屌絲我也不自量力的利用我們圖靈機械人做了乙個 小靈 我選擇了qq群作為載體,自認為效果完勝微軟 小冰 好歹俺們也是個 國企 在中文的自然語言處理與解析上還是很有自信的。qq...
水波加入了簡單的反射,效果好多了
今天終於把cubemap的讀取加入引擎了.要知道.在opengl下,不是件很容易的事情.尤其要做到載入的介面都要一致,而且要考慮到和dx相容.不過目前似乎這個介面還是不錯的.cubemap的第乙個簡單應用就是給前面做的水加上了簡單的反射,看上去效果好多了.經過一段時間優化,速度也快了.這個是128x...