08 2024 档案
摘要:1007 简单博弈,队友做的 #include<bits/stdc++.h> using namespace std; const int N=2e5; int n,a[N+5],b[N+5],A,B; bool vis[N+5]; inline int read() { int x=0;bool
阅读全文
摘要:1004 如果r2>2r1且树的直径>2r1,则逃跑方总能逃跑 否则攻击方肯定能一步步把其逼到叶子节点 #include<bits/stdc++.h> using namespace std; const int N=1e5; int n,s,r1,r2; vector<int> ver[N+5];
阅读全文
摘要:K 贪心地先凑出前后端后,中间的部分是本质不同的子序列个数 然后枚举可以重叠的部分,如果可以重叠肯定是回文后缀 有不少细节,比如空串,重叠部分要求后面的能取到 #include<cstdio> #include<iostream> #define int long long #define ULL
阅读全文
摘要:E 观察到s(m)<=108,所以r是可以枚举的 但是枚举完后再开根号,时间复杂度为O(T*r*sqrt(n))≈O(100*100*1e6) 赛时还想了一种自认为更优的做法。 考虑枚举i,枚举完i就能得到r,判断是否满足条件(当然,就像分解质因数那样,n/i也要判断) 然后直接这么写会出点小问题,
阅读全文
摘要:1002 提供一种不同于正解的做法 重新定义菊花图: 菊花图首先是一棵树,其次存在一个点,它指向的点的度数都为1,剩下的都是度数为1的点。 那么在枚举删去某个点u时,只需要: 1.给u的邻点的度数-1(deg[u]--) 2.维护当前度数不为1的点的个数(代码里的non1) 3.维护 指向的点都为1
阅读全文
摘要:1005 状压dp,只不过压的是3进制。 模数有坑点,可能模完为0但是方案存在,也要输出。因此多开一个数组表示存不存在。 #include<bits/stdc++.h> using namespace std; const int N=500,K=10,LIM=6e4; const char ch[
阅读全文
摘要:很神奇的场hh,大家一起坐牢,多好啊! B 找规律,这种题一般都是多模拟几个数据然后猜出来 #include<bits/stdc++.h> using namespace std; inline int read() { int x=0;bool f=1;char ch=getchar(); for
阅读全文