上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 19 下一页
摘要: A 签到,开long long(不开也pp不了) #include<bits/stdc++.h> using namespace std; long long a,b,ans; int main() { cin>>a>>b>>ans;ans*=2; if(a==b)ans+=a*2; else an 阅读全文
posted @ 2019-06-02 09:07 hfctf0210 阅读(306) 评论(2) 推荐(0)
摘要: AB 签到(A就是ans=180(n-2)所以不放code了) #include<bits/stdc++.h> using namespace std; int n,ans; char s[100001]; int main() { scanf("%s",s+1); n=strlen(s+1),an 阅读全文
posted @ 2019-06-02 08:54 hfctf0210 阅读(210) 评论(0) 推荐(0)
摘要: 非常抱歉,这篇文章鸽了。 阅读全文
posted @ 2019-06-01 18:30 hfctf0210 阅读(445) 评论(0) 推荐(0)
摘要: 一眼最小割。 一种比较好想的建图方式如下: 连源点表示学文,连汇点表示学理,然后adde(S,id(i,j),a[i][j]),adde(id(i,j),T,b[i][j]);对于相邻座位选择同一科的情况,建立新节点,然后若学文,则新点向T连一条流量为价值的边,然后两名同学向该点连接流量为inf的边 阅读全文
posted @ 2019-05-31 09:42 hfctf0210 阅读(115) 评论(0) 推荐(0)
摘要: 很容易发现一个O(n2)DP,f[i][j]=f[i][j+1]+f[i+1][j]-f[i+1][j+1]。然后由于有栅栏,一些位置没办法走,然后就可以用类似差分的方法,f[i]表示当前行f[i+1]无法到达的花朵,然后对于每个点找到其下方第一个栅栏。分情况讨论,需要支持单点修改(出现花),区间标 阅读全文
posted @ 2019-05-31 08:07 hfctf0210 阅读(302) 评论(1) 推荐(0)
摘要: 非常抱歉,这篇文章鸽了。 阅读全文
posted @ 2019-05-30 21:53 hfctf0210 阅读(260) 评论(0) 推荐(0)
摘要: 非常抱歉,这篇文章鸽了。 阅读全文
posted @ 2019-05-30 21:52 hfctf0210 阅读(279) 评论(0) 推荐(0)
摘要: 这题正解应该是扫描线,就是发现DP的区间在两个维度都为连续段,于是可以直接扫描线。但不幸的是,扫描线常数过大,无法通过本题。 考虑分治。对于分治区间[l,r],可以记录pre和nxt表示其前/后一次出现的位置,每当遇到一个出现次数=1的数,可以直接把区间分为两半判断,反之则丢掉这个数,而仅会分治一次 阅读全文
posted @ 2019-05-29 19:37 hfctf0210 阅读(197) 评论(0) 推荐(0)
摘要: 颜色数不超过lim=min(m,n/S),然后计算恰好出现S次的颜色有至少i种的方案数为f[i],被钦定的i种恰好S个,其余(m-i)种一共(n-iS)个,然后f[i]=C(i,m)(m-i)n-iSn!/((S!)i(n-iS)!),然后一减就发现ans[i]=Σ(-1)j-iC(i,j)f[j] 阅读全文
posted @ 2019-05-24 20:48 hfctf0210 阅读(379) 评论(0) 推荐(0)
摘要: 首先有个很奇妙而且很有用的性质:每个二叉树对应唯一的中序遍历,然后每个二叉树出现概率相同。所以n个节点的二叉树形态是n!种(题目中说了*n!已经是提示了),对每种方案求和即可得到期望。令f[i]表示i个节点的子树,根深度为1时,所有点的期望深度之和乘i!的值,令g[i]表示i个节点的子树,期望两两路 阅读全文
posted @ 2019-05-24 20:02 hfctf0210 阅读(236) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 19 下一页