e - string typing codeforces 954b
substr用法: s.substr(i,j)表示從下標為i的位置開始擷取j位
#include
using namespace std;
intmain()
i - game of robots codeforces 670b
題意:n 個機器(標號唯一)人站一列按照一定的規則進行報號遊戲,問報出的第 k 個編號是什麼
#include
const
int mydd=
1e5+
1103
;int robot[mydd]
;int
main()
\ printf
("%d\n"
,robot[k]);
}return0;
}
j - xor-paths codeforces 1006f
題意:從左上走到右下,每次只能向右或下走,問走到右下角時路徑異或和為k的路徑數
直接暴力dfs的話複雜度為240
所以我們用雙向dfs 複雜度為2*220=221
用map記錄路徑異或和
從左上跑一半,右下跑一半
跑到相同點時將答案傳回
先貼出我的dfs**,顯然超時了
#include
using namespace std;
int g[21]
[21];
int n, m, k, ans;
void
dfs(
int x,
int y,
int xorsum)
return;}
if((x +1)
<= n && y <= m)
if(x <= n &&
(y +1)
<= m)
}int
main()
}dfs(1
,1, g[1]
[1])
;printf
("%d\n"
, ans)
;//fclose(stdin);
return0;
}
下面是正解
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef
long
long ll;
int n,m;
ll k;
ll a[25]
[25];
map dp[25]
;void
dfs(
int x,
int y,ll s)
dfs(x+
1,y,s^a[x]
[y])
;dfs
(x,y+
1,s^a[x]
[y]);}
ll solve
(int x,
int y,ll s)
intmain()
暑期集訓補題系列Day 3樹 佇列 棧
a.useful decomposition codeforces 981c 題意 給你一棵n個結點的樹,然後輸入n 1條邊。要求將該樹拆成若干條簡單路徑,並且這些路徑都經過乙個公共節點。給出任意乙個解決方案,如不存在輸出no 思路 鄰接表存圖建雙向邊,如果乙個點的出度 2,那麼他就是那個共享的點,...
暴搜 中山紀念中學暑期遊Day2 佳餚
考的不好,但是評講過後發現 都!好!水!啊!還是那句自己的老話 佳餚就是非常美味的菜的意思,佳餚最關鍵的是選擇好原料。現在有n種原料,每種原料都有酸度s和苦度b兩個屬性,當選擇多種原料時,總酸度為每種原料的酸度之積,總苦度為每種原料的苦度之和。正如大家所知,佳餚是既不酸也不苦的,因為要保證所選的原料...
省隊集訓DAY2
假設我們列舉數列中長度為len的區間,那麼如何判斷兩個數列可以匹配呢?對於提取的數列從小到大排序,從大到小排序,然後兩兩配對,如果所有的都滿足 h 那麼就可以匹配。應該算是貪心吧。這樣做的時間複雜度是o n le n loglen 還是上面的思想,我們如何快速判斷呢?假設我們確定了提取出的區間數列,...