上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 67 下一页
摘要: 状态表示: 父亲和儿子不能同时选,父节点$u$选或不选会影响子树的结果。 $f(u,0)$表示不选$u$时,以$u$为根的子树快乐质数总和的最大值。此时,$u$的子节点可以参加,也可以不参加; $f(u,1)$表示选$u$时,以$u$为根的子树快乐质数总和的最大值。此时,$u$的所有子节点都不能参加 阅读全文
posted @ 2021-04-08 20:02 Dazzling! 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 树的重心模板。 自底向上进行统计以每个结点u为根的子树大小。 对于一个节点u,如果我们把它从树中删除,那么原来的一棵树可能会分成若干个不相连的部分,其中每一部分都是一颗子树。 设maxpart表示在删除节点u之后产生的子树中,最大的一颗的大小。使maxpart取到最小值的节点就是树的重心。 cons 阅读全文
posted @ 2021-04-08 19:12 Dazzling! 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 前缀异或,$[1 \sim l-1]$异或两次为$0$,而$0$与任何数异或值都不变。 const int N=1e5+10; int a[N]; int n,m; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; a[i]^=a[i-1 阅读全文
posted @ 2021-04-06 08:29 Dazzling! 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 水题~。 int main() { string s; cin>>s; sort(s.begin(),s.end(),greater<int>()); cout<<s<<' '; reverse(s.begin(),s.end()); int idx=0; while(s[0] == '0' && 阅读全文
posted @ 2021-04-05 22:46 Dazzling! 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 注意细节。 const int N=1010; char s[N]; int n; int main() { while(~scanf("%s",s)) { n=strlen(s); vector<int> res; int num=0; bool have=false; for(int i=0;i 阅读全文
posted @ 2021-04-05 21:04 Dazzling! 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 看到括号匹配当然想到栈了。 int main() { string s; while(cin>>s) { stack<char> stk; for(int i=0;i<s.size();i++) { if(s[i] == '(') stk.push(s[i]); else if(s[i] == ') 阅读全文
posted @ 2021-04-05 18:54 Dazzling! 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 打表,先把小于等于 N 的且与 7 无关的正整数找出来,然后再预处理出小于等于N的这些正整数平方和。 const int N=1e6+10; bool vis[N]; LL sum[N]; bool check(int x) { if(x % 7 == 0) return true; while(x 阅读全文
posted @ 2021-04-05 17:18 Dazzling! 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 打表,把所有$1$出现的位置存起来。 unordered_set<int> S; void init() { for(int i=1,d=1;i<=1e9;) { S.insert(i); i+=d; d++; } } int main() { init(); int T; cin>>T; whil 阅读全文
posted @ 2021-04-05 15:54 Dazzling! 阅读(27) 评论(0) 推荐(0) 编辑
摘要: \[ [F(n,1),F(n,2),F(n-1,1),F(n-1,2),F(n-2,1),F(n-2,2),1]=\\ [F(n-1,1),F(n-1,2),F(n-2,1),F(n-2,2),F(n-3,1),F(n-3,2),1] \begin{bmatrix} 0 & 1 & 1 & 0 & 阅读全文
posted @ 2021-04-05 12:31 Dazzling! 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 裸题。 const int N=1e5+10; int a[N]; int n; int main() { cin>>n; for(int i=0;i<n;i++) cin>>a[i]; int res=0; int sum=0; for(int i=0;i<n;i++) { sum=max(sum 阅读全文
posted @ 2021-04-05 10:49 Dazzling! 阅读(62) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 67 下一页