BZOJ5131: [CodePlus2017年12月]可做题2】的更多相关文章

BZOJ没有题面,差评 洛谷的题目链接 题解 其实这题很久之前就写了,也想写个题解但是太懒了,咕到了今天 在typora写完题解不想copy过来再改格式了,于是直接贴截图qwq #include <bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f #define il inline #define int long long namespace io { #define in(a) a=read() #define out(a…
[BZOJ5133][CodePlus2017年12月]白金元首与独舞 题面:www.lydsy.com/JudgeOnline/upload/201712/div1.pdf 题解:由于k很小,考虑用矩阵树定理. 我们先预处理出:从每个已决策点,一直走下去会走到哪个未决策点(我们将最外面看作一个大的未决策点).可以用拓扑排序搞定,若有环则无解. 然后我们枚举每个未决策点的四个方向,看一下一直走下去会走到哪个点,在新图中从这个点到终点连一条边.得到新图的出度矩阵和邻接矩阵,求出|出度矩阵-邻接矩阵…
题目:https://www.luogu.org/problemnew/show/P4030 可以发现一个矩阵是巧妙矩阵当且仅当其所有二阶子矩阵都是巧妙矩阵: 将不巧妙的二阶矩阵计为1,维护二维前缀和,查询得出当前范围内不巧妙二阶矩阵的个数,若为0则大矩阵是巧妙矩阵. 代码如下: #include<iostream> #include<cstdio> using namespace std; int a[505][505],f[505][505],n,m,t; int main()…
题目描述 给定一个 $n\times m$ 的方格图,每个格子有 ↑.↓.←.→,表示从该格子能够走到相邻的哪个格子.有一些格子是空着的,需要填上四者之一,需要满足:最终的方格图中,从任意一个位置出发都能够走出方格图.求方案数 mod 10^9+7. $数据组数\le 10$ ,$n,m\le 300$ ,$空格子数k\le 200$ 题解 并查集+矩阵树定理 由于k很小,又是计数问题,考虑矩阵树定理. 先使用并查集处理出从每个位置开始,最终会走到哪个位置.显然如果有环则答案为0,否则一定走到的…
bzoj luogu 题意 给你一个\(n*m\)的网格,每个位置上有一个箭头指向上或下或左或右.有些位置上还没有箭头,现在要求你在这些没有箭头的位置上填入箭头,使得从网格的任意一个位置开始,都可以沿着箭头走出网格. 求填入的方案数膜\(10^9+7\) sol 给"网格外"建一个点.每个格子向它指向的格子连一条边. 这样会发现一个方案合法当且仅当连出的这\(n*m\)条边构成一棵树. 没有确定的格子可以向四个方向连边.这样直接上矩阵树可以做到\(O((nm)^3)\). 考虑优化.只…
11月的月赛错过了,来打12月月赛,由于很(zi)想(ji)拿(tai)衣(ruo)服(la),所以去打div2. T1是一个sb模拟,但是机房全卡死在这道语文题上了,基本上弄了一个半小时,T2可以秒杀,T4像一个数据结构神题,写了4个set+1个树状数组水了水. 然后就剩下我最怕的数学题.llj说这道题式子贼好推,你做做吧.我瑟瑟发抖. 下来看这道题,确实是道比较简单的数学题. 我们假设$F_i$为斐波那契数列的第$i$项, 那么这道题第$k$项就应该是$A_k = A_1 \times F_…
[CodePlus2017]可做题 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 87  Solved: 63[Submit][Status][Discuss] Description qmqmqm希望给sublinekelzrip出一道可做题.于是他想到了这么一道题目:给一个长度为n的非负整数序列ai,你需 要计算其异或前缀和bi,满足条件b1=a1,bi=bi?1 xor ai(i≥2).但是由于数据生成器出现了问题,他生成的序列a 的长度特…
Description qmqmqm希望给sublinekelzrip出一道可做题.于是他想到了这么一道题目:给一个长度为n的非负整数序列ai,你需 要计算其异或前缀和bi,满足条件b1=a1,bi=bi?1 xor ai(i≥2).但是由于数据生成器出现了问题,他生成的序列a 的长度特别长,并且由于内存空间不足,一部分ai已经丢失了,只剩余m个位置的元素已知.现在qmqmqm找到你, 希望你根据剩余的ai,计算出所有可能的a序列对应的b序列中∑=bi(1<=i<=N)的最小值. Input…
当时看到这道题感觉真是难过,我数据结构太弱啦. 我们来看看需要求什么: 1.当前熟了的食物的最小id 2.当前熟了的食物中有没有编号为id的食物 3.当前没熟的食物中有没有编号为id的食物 4.当前没熟的食物中编号为id的食物最接近煮熟的还需要多久才会熟 5.当前熟了的食物中编号在[l,r]之间的有多少个 我们需要维护的操作是: 1.往当前的锅里面加一个编号为id的生食物 2.每个时刻锅里面哪些生的食物要变熟 3.吃掉(删除)一个熟了的食物 感觉这种题真考人做题的毅力,求的东西好杂感觉脑子里都乱…
作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量XXX_flag例如,程序已经进入了第三层循环,要返回第二层循环就是把第三层循环的flag改为Fasle,第二层的flag还是True,这样进入就可以退出第三层循环进入第二层循环,进入第二层循环的时候再把第三城循环的flag改为True,这样就能保证第二层循环输入正确的菜单选项后还能正常进入第三层循…