摘要:
qsCQeszE 题意:k种颜色的花,每一种都有无数朵,有n个妹子,问你有多少种方案,每个女生送一朵花,恰好K种颜色都送出去了 很简单,直接容斥就好了F[i]表示送了小于等于i种,F[i] = C(k,i) * i ^ n.然后答案就是F[k] - F[k - 1] + F[k - 2] ... 复 阅读全文
摘要:
A:签到题,直接LL做 B:模拟。没什么好写的 C:求k * m % n == 0最小的k,k = n / (gcd(n,m)) D:bfs E:把第一和第二棵树hash起来,然后在第一棵树每个节点找一下相等的 F:规律题 考虑len == 1的时候,年份范围是2009 - 2018len == 2 阅读全文
摘要:
昨天做完。补一下题解 A:规律题。。 B:状压dp C:4^n - (没有连续4个不相同的串的个数),后者可以这样求,一个朴素的dp就是dp[i][j]表示到第i位,尾部有j个不同。 dp[i][j] = (4 - j) * dp[i-1][j-1] + dp[i-1][j + 1] + dp[i- 阅读全文
摘要:
图论姿势太弱,这套题做了好久。。 A:枚举最短那条边,然后最小生成树那种操作,1 和 n 联通就算答案 B:考虑到假如我们能凑出x的话,那很明显我们也能凑出任意数表示x + ai,考虑选取一个ai,然后dis[x]表示能凑出k % ai == x的最小k,跑一次最短路,初始化dis[0] = 0,假 阅读全文
摘要:
http://acm.uestc.edu.cn/#/contest/show/155 对大二来说貌似这套题有点简单了,多是一眼题 发现漏了一题,然而是以前看别人讨论过的:)。 H:线段树+暴力。大概就是如果公差大一点的话,直接暴力扫一次,小的公差就用多个线段树维护起来。 另外线段树还有一道好题,uo 阅读全文
摘要:
第一题略 第二题组合数学 s1 = min(cnt['a'],cnt['b']), s2 = min(cnt['c'],cnt['d']), b1 = max(cnt['a'],cnt['b']), b2 = max(cnt['c'],cnt['d']); 简单分开枚举'a','b'一组和'c',' 阅读全文
摘要:
在一张 n 行 m 列的方格地图上放置一些守卫,每个守卫能守护上、左、右三个方向上相邻的方格和自己所在的方格。如下图,红色的方格放置守卫,绿色的方格为该守卫守护的区域。 现在要求在地图上放置若干个守卫,让每个方格至少被一个守卫守护(可以同时被多个守卫守护),但是有些方格上不能放置守卫(这个方格也需要 阅读全文
摘要:
https://www.hackerrank.com/contests/hourrank-19/challenges 第一题略。 第二题是nim博弈,问删掉一个区间的石子,使得先手败的方案有几种,明显维护前缀异或,然后一直加方案数就好了 #include <cstdio> #include <cst 阅读全文
摘要:
http://www.lydsy.com/JudgeOnline/problem.php?id=4765 很nice的一道题啊(可能是因为卡了n久终于做出来了 题意就是给你一棵带点权的有根树,sum(i)表示以i为根的这颗子树中所有节点的权值和。有两种操作,一种是修改某个点的权值,另一种是给出l,r 阅读全文
摘要:
const int maxn = 1e4 + 5; const int maxm = 2e5 + 5; struct Edge { int from, to, next , cap; } edge[maxm]; int head[maxn]; int tol; int s, t; void init 阅读全文