嵊州普及Day1T2】的更多相关文章

题意:走迷宫.求走到a[n][n]需要多久. 考场上想的dfs,听老师说最多50分.代码懒得码了,知道是走迷宫就好. 正解:bfs,时间复杂度O(n). 见代码: #include<iostream> using namespace std; ,tail=,a[][],h[],l[],t[]; ]={,-,,,},a2[]={,,,-,}; ]={,-,-,,},c2[]={,-,,-,}; ][]; char s; int main(){ cin>>n; ;i<=n;i++…
题意:n个点,对于q个询问,有t秒及一个矩形的范围.在此矩形内的数每秒加1,若等于c,则下一秒变为0. 思路:t可能很大,%c+1就可以了.然后一个一个加起来就可以了. 见代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; ][],x,y,x2,y2,t,ans; ][]…
题意:有一个矩形,由正负整数构成.一个位子的魅力值为相邻的格子,若与邻格同号则减去绝对值,若异号则加上绝对值. 思路:一个格子一个格子计算即可,没什么好说的. 见代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; ][],b[][],c[]={,-,,,},d[]={,,…
题意:两个1,每次可将一个*k,一个*K2,n个问题,问能否达成x,y? 思路:只有将x,y相乘为3次方时,才可能.并且相乘的三次方一定要是x,y的因子. 下面证明:3次方易证,因为对每个k,都会乘三次. 那么x,y都应当有每个k相乘做因子,第二点亦得证. 见代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> u…
题意:将(w,h)的纸条折成(W,H),最少需几步. 思路:横竖互不干扰,然后最多可折int型一半,拿个函数判断两次比较即可,然后折不了的条件是需要的矩形大于给的矩形. 见代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; ,sum; void fold(int h,in…
题意:有n个商店,自家商店的定价不可高于任何一家商店定价,求自家商店最高定价. 思路:拿个变量打擂台即可,不用解释太多. 见代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; ],y[]; int n; int main() { freopen("chicken…
题意:有一个单行走廊,每回合第ai个展柜会冒出来一只鬼,右边尽头有一个人间大炮和向最左传送门(费用均1金币),你需要每回合将所有鬼交换展柜,全部至最右,问若从一到n所有回合结束是需多少金币可射死所有鬼. 思路:花一块可将一只鬼挪至最右,然后使用一个指针储蓄最右有几个鬼,然后相减就可以了. 见代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<…
题意:从n个数中选出k个数,使他们任意两数之差都等于m. 思路:任意差值都等于m,不就等价于k个数模m余数相同吗? 然后桶排储蓄一下各数余数即可. 见代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; ],b[]; int main() { // freopen(&quo…
题意:求最长上升序列长度和方案数. 思路:经典DP,不需什么别的东西,加一个数组储蓄程序数即可,原题300000可能N2会有问题,但问题不大. 见代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; ],flag,b[],c[],sum; int main() { freo…
题意:对于n数列的全排列,有多少种可能,是每项前缀和不能整除3.输出可能性%1000000000037. 思路:全部模三,剩余1.2.0,1.2可这样排:1.1.2.1.2.1.2.……2或2.2.1.2.1……1. 只需开一个unsigned long long,将每种可能乘法原理叠起来,加上插入0的情况,模1000000037即可. 思路是这样的,但是本人蒟蒻,式子没推出来,就这样吧. 我数学太渣,么的办法啊. 好题哉!!!…