2016.11.4
晚上六點點開了一場看上去通過人數比較多的hihoround(20),virtual participate了一下。感覺這場還是比較友好的,和我以前做的hihoround只能做一題,或者爆零不一樣。在兩個小時裡寫了3個題(a,b,c),d看上去像是個經典問題,但從來沒寫過(幾何基本等於殘疾),便直接放棄了。
這場是島娘出的,我還以為是ta朋友出的。
感覺題挺不錯。題解寫的也不錯。
官方題解:
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 1e5 + 5;
#define lson o * 2,l,mid
#define rson o * 2 + 1,mid + 1,r
struct segmenttree
void build(int o,int l,int r)
int mid = (l + r) >> 1;
build(lson);
build(rson);
pushup(o);
}void update(int o,int l,int r,int p,int val)
int mid = (l + r) >> 1;
if(p <= mid) update(lson,p,val);
else update(rson,p,val);
pushup(o);
}int query(int o,int l,int r,int ql,int qr)
int ans = 0;
int mid = (l + r) >> 1;
if(ql <= mid)
if(qr > mid)
return ans;
}}tree;
int n,m;
int main()
int ans;
for(int i = 1;i <= m;i++)
return
0;}
b:
這是乙個括號匹配型別的問題。仔細分析發現,其實可以是個dp。 dp
[i]=
dp[l
eft]
+1,l
eft是
使得s[
left
+1]−
s[i]
形成乙個
合法括號
序列的最
靠近i的
位置,那
麼ans
=∑dp
[i],
這樣的話
是個o(
n2)的
dp,再
仔細觀察
可以發現
,其實l
eft就
是同層的
上乙個位
置,而且
dept
h從高減
的時候,
要把上一
層pre
的刪掉。
(dep
th指的
是比如(
(()(
))),
內層括號
就是第三
層,外面
就是第二
層,第一
層.這樣
就是線性
的了)具
體見**
。 **:
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 1e6 + 5;
int dp[maxn];
int num[maxn];
char s[maxn];
char stack[maxn];
int top;
int main()elseelse}}
long
long ans = 0;
for(int i = 1;i <= n;i++) ans += dp[i];//cout << dp[i] << " ";
cout
<< ans << endl;
return
0;}
c:
數字dp。
題解說二分+dp。
其實二分的過程可以包含在dp的過程中了。不錯的練手題,推薦數字dp欠缺(比如我)的人寫,雖然這個dp**量不大。
我的**(嚴格也不算數字dp了):
#include
#include
#include
#include
using namespace std;
long
long power[20];
long
long pow8[20];
long
long k;
int d[20];
int main()else
}elseelse
}elseelse}}
}}
first = false;
for(int i = 19;i >= 1;i--)
}
return
0;}
hihoCoder挑戰賽31 題解
時間限制 8000ms 單點時限 1000ms 記憶體限制 256mb 描述 給定n個整數常數c 1 c 2 c n 和乙個整數k。現在需要給2k個整數變數x 1 x 2 x k y 1 y 2 y k 賦值,滿足 1 對於所有1 i k,都有x i y i 2 對於所有1 i n,都存在至少乙個j...
hihoCoder挑戰賽12 順子 模擬
時間限制 6000ms 單點時限 1000ms 記憶體限制 256mb 你在賭場裡玩梭哈,已經被發了4張牌,現在你想要知道發下一張牌後你得到順子的概率是多少?假定賭場使用的是一副牌,四種花色的a 2 3 j q k共52張,這副牌只發給你了4張,你的剩下一張牌從剩下48張中任意取出一張。順子指的是點...
hihoCoder挑戰賽12 計數 打表
時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb rowdark是乙個 的魔法師。在他閱讀大巫術師lich的傳記時,他發現一類黑魔法來召喚遠古生物,魚丸。魔法n能召喚型別i 魚丸當且僅當i能夠被表示為x xor n x對於某個正整數x和固定的n。rowdark想知道型別為 l...