Live2D
摘要: 原题 #include<bits/stdc++.h> #define r register using namespace std; const int N=1e6+5,Mod=1e9+7; int n,fac[N],cnt[N],dp[N],cur,ans; int main() { scanf( 阅读全文
posted @ 2020-01-16 16:38 γひん0ΖΖƦ 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 原题 题意分析 给出一个矩阵,要求每行只能选一个节点,每列选的节点不能超过所有选的节点的一半,不能不选,给出每个节点的选择方案数,求总方案数 思路分析 可以看出,维护每列已选的节点复杂度太大,不太可行;因此很容易想到,先不考虑每列不超过一半的这个限制,求出总方案数,然后再减去考虑这个限制后不合法的方 阅读全文
posted @ 2020-01-16 16:34 γひん0ΖΖƦ 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 原题 1、暴力:10~20pts,复杂度O(n^4)O(n4),只能解决链 暴力很容易就会了。 因为只解决链,所以不用建树,用一个数组存就可以了。恰好这题很良心,编号为 ii 的祖先恰好是 i-1i−1,也就是说本身编号就是顺序的(不像毒瘤T3,链的编号还有可能乱序) 先套一重forfor 枚举 i 阅读全文
posted @ 2020-01-16 16:31 γひん0ΖΖƦ 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 原题 #include<bits/stdc++.h> using namespace std; long long n,k,ans; int main() { scanf("%lld%lld",&n,&k); for (register long long l=1,r,t;l<=n;l=r+1) { 阅读全文
posted @ 2020-01-16 16:29 γひん0ΖΖƦ 阅读(136) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> #define r register using namespace std; const int N=3e5+5; inline int read() { int X=0,w=0; char ch=0; while(!isdigit(ch)) {w| 阅读全文
posted @ 2020-01-16 16:25 γひん0ΖΖƦ 阅读(175) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; const int N=3e6+5; struct node{int to,nxt;}e[N<<1]; int n,m,head[N],tot,a[N],ans; void add(int u,int v) { 阅读全文
posted @ 2020-01-16 16:24 γひん0ΖΖƦ 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 原题 nearfa[i] 表示 点i 最近的一个打了标记的祖先,默认1 t[i] 表示 这个点最后一次被查询是在第几次标记之后,默认1 cnt 表示 执行了几次标记操作 ,为了方便,cnt从1开始 执行标记操作时,如果这个点已经被标记了,就不用再标记了。 否则标记,cnt++; find(u) 函数 阅读全文
posted @ 2020-01-16 16:23 γひん0ΖΖƦ 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题目 模拟 1、遇到'(',我们就把栈的层数+1,以便出栈时累计 2、遇到字母后,判断下一位是否是小写字母,将其在map中的值取出加入栈中,再将最近一次的元素保存(暂记作key),等会有用^_^,别忘了判断UNKNOWN。 3、遇到数字,while循环取出它(记作x),说明上次的key有了用武之地, 阅读全文
posted @ 2020-01-16 16:16 γひん0ΖΖƦ 阅读(158) 评论(0) 推荐(0) 编辑