詣天詣練04

2021-09-19 09:22:17 字數 1498 閱讀 8049

題意:找偶數子串個數。

分析:如果i-th位置為奇數則以它為末尾的子串都為奇數子串減去i即可。

#includeusing namespace std;

const int maxn = 65010;

int n;

long long num;

char ch[maxn];

int main()

printf("%lld", num);

return 0;

}

題意:貪心,前面的數一定比後面的數小。然後只需要記錄他的後面的最大值,然後前乙個數不超過他即可。

#includeusing namespace std;

const int maxn = 2e5 + 100;

int n;

long long a[maxn];

int main()

printf("%lld\n", num);

return 0;

}

題意:按順序走最短路,然後必須經過一條黑邊,我們只需要將紅邊單獨挑出來求聯通快即可。而路徑的數目即n^k.

兩種方法:

1.並查集,聯通點fa[i] == i;

#includeusing namespace std;

#define ll long long

const int maxn = 1e6 + 100;

const int mod = 1e9 + 7;

ll n, k, fa[maxn], sa[maxn], ans;

ll pow_fast(ll x, ll n)

return res;

}ll tofind(ll x)

int main()

}ans = pow_fast(n, k);

for(int i = 1; i <= n; i++)

}printf("%lld\n", ans);

return 0;

}

2.dfs求聯通塊。

#includeusing namespace std;

#define ll long long

const int maxn = 1e6 + 100;

const int mod = 1e9 + 7;

ll n, k, vis[maxn];

ll ans;

vector vec[maxn];

ll pow_fast(ll x, ll n)

return res;

}void dfs(ll re, ll &num)

}int main()

ans = pow_fast(n, k);

for(int i = 1; i <= n; i++)

}printf("%lld\n", ans);

return 0;

}

詣天詣練01

手速題,題意給你n個車次和到達時間,幫s同學坐上最早的車。車有第一次到達時間和間隔時間。分析 很簡單,只需讓所有車次都變成達到時間之後的,然後挑選最早的那個即可。includeusing namespace std const int maxn 110 int t,n,x maxn struct n...

詣天詣練03

小思維 手速題 題意 即每頁都有個懸念需要到另一頁去找,然後有懸念的一定要看完到那一頁,問你需要多少天。分析 即更新最大值當懸疑頁數小於等等於當前頁數時 1天。includeusing namespace std const int maxn 1e4 10 int n,ans,a maxn d in...

百練 04 簡單的整數劃分問題

總時間限制 記憶體限制 100ms 65536kb 將正整數 n 表示成一系列正整數之和,n n1 n 2 nk,其中n1 n2 nk 1 k 1 正整數n 的這種表示稱為正整數 n的劃分。正整數 n 的不同的劃分個數稱為正整 數n 的劃分數。標準的輸入包含若干組測試資料。每組測試資料是乙個整數n ...