【Hack.lu-2017】FlatScience】的更多相关文章

[UOJ#340][清华集训2017]小 Y 和恐怖的奴隶主(矩阵快速幂,动态规划) 题面 UOJ 洛谷 题解 考虑如何暴力\(dp\). 设\(f[i][a][b][c]\)表示当前到了第\(i\)次攻击,还剩下的\(1,2,3\)血的奴隶主个数为\(a,b,c\)的概率,每次考虑打到了哪里,做一个转移. 这样子,状态数就是把不超过\(8\)个东西分配到\(3\)个集合中,状态有\(165\)种,再加一个状态记录糊脸上的期望,也就是\(166\)个状态. 直接矩乘优化,那么单次的复杂度就是\(…
我的还……支持撤销!用链表实现! 题目:推箱子小游戏(基于console) 功能要求: 将p09迷宫游戏改造为“推箱子”游戏: 在地图中增加箱子.箱子目标位置等图形: 当玩家将所有箱子归位,则显示玩家赢得了游戏: 按玩家走动步数记分: 设计多个关卡,每一关的地图从文件中读取,玩家每关的分数记录到文件中: #include<stdio.h> #include<conio.h> #include<windows.h> #define LEVEL 3 typedef stru…
原文链接www.cnblogs.com/zhouzhendong/p/UOJ335.html 前言 CLY大爷随手切这种题. 日常被CLY吊打系列. 题解 首先从 pruffer 编码的角度考虑这个问题. pruffer 编码的长度为 $n-2$ ,如果点 $i$ 在 pruffer 编码中出现了 $d_i - 1$ 次,那么点 $i$ 的度数就是 $d_i$ ,对答案的贡献次数就是 $\binom {n-2}{d_i}a_i ^ {d_i}$ . 于是自然想到用 EGF 做这个题.设 $$f_…
原文链接www.cnblogs.com/zhouzhendong/p/UOJ346.html 题解 首先按照 $m_i$ 的大小排个序. 如果某一个区间和一个 m 值比他小的区间有交,那么显然可以将这个区间控制的区域删除掉重合的那一段. 如果一个区间被删没了,那么显然答案为 0 . 在这个处理之后,一个区间可能会变得不连续.那么我们就将它前后相连,变成连续的. 接下来问题变成了对每一种权值的区间算答案. 这个东西离散化之后大力DP即可. 注意特判权值为 1 的区间. 写起来好像有点麻烦. 时间复…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ345.html 前言 我真的是越来越菜了,连树形DP都感觉陌生了. 题解 首先,我们来看看在不断生长叶子会发生什么. 第一种:顺着生长方向走. 第二种:在某一个节点的某些子树依次生长,达到他们之间互相消耗的作用. 对于一个子树 x,假设初始情况下,树心在点 x 上,那么在 x 子树中生长若干次之后,树心离开 x,那么我们考虑求出在树心离开 x 之后,能将 x 往 x 子树方向拉的次数的上界 Max[x]…
题目 描述 ​ 给出一个\(n*m\)的网格,每个格子里的水管可能向四个方向都有接口: ​ 游戏的目的是不能让水管漏水,即所有接口都有另一个接口与之相接: ​ 你一步可以将一个格子中的水管旋转\(90^ {\circ}\),规定直线型的接口不能旋转: ​ 求最小的步数: 范围 ​ \(nm \le 2000\): 题解 对每个点拆成上右下左四个接口(令标号为0123),将格子黑白染色并将接口分别向源汇连边: 对每种形状的水管分类讨论,用 \((a,b,w)\) 表示在内部连边,仅讨论黑格子,白格…
传送门 一道不错的矩阵快速幂优化dpdpdp. 设f[i][j][k][l]f[i][j][k][l]f[i][j][k][l]表示前iii轮第iii轮还有jjj个一滴血的,kkk个两滴血的,lll个三滴血的. 显然是可以从f[i−1]f[i-1]f[i−1]转移过来的. 但是仔细一想,这个递推关系在i=1i=1i=1~nnn的时候都是一样的,于是把后面三个状压上矩阵快速幂优化就行了. 直接转是O(T∗size3log)O(T*size^3log)O(T∗size3log)的. 于是可以用倍增的…
小Y的地铁 Time Limit: 50 Sec  Memory Limit: 256 MB Description Input Output 对于每组输入数据,输出一行一个整数,表示除掉这 n 个换乘站之外,最少有几个换乘站. Sample Input 4 4 1 2 1 2 8 1 2 3 4 1 2 3 4 5 5 4 3 3 5 8 1 2 3 4 1 3 2 4 Sample Output 0 0 0 1 HINT n <= 44 Solution 首先,答案显然只和几个区域的连通状态…
题目:简单进销存 功能要求: 实现如下的菜单(按数字选择菜单功能): 1. 显示存货列表 2. 入库 3. 出库 4. 退出程序 实现菜单对应功能(需记录货物的型号.数量等信息): 程序启动时从文件中读取当前库存数据,退出时保存库存数据: #include<stdio.h> #include<string.h> #include<conio.h> #include<windows.h> typedef struct GOOD{ char *name; int…
题面 传送门 题解 orzxyx 首先我们发现,一个点如果被到达大于一次,那么这个点肯定在一个环上.所以在不考虑环的情况下每个点只会被到达一次,那么我们就可以直接暴力了 简单来说,我们对每个点\(i\)预处理一下\(to[i][from]\),表示如果有一条绳子从\(from\)绕到\(i\),那么绕上\(i\)之后这条绳子对应的下一个点是哪个(假设绳子无限长).这个可以通过对所有点按极角排序之后直接预处理出来 接下来考虑环,我们可以用类似取模的手段,找到一个环之后把整圈直接跑掉,剩下的继续暴力…