luogu P4275 萃香的请柬】的更多相关文章

嘟嘟嘟 打表不难发现,序列的长度以及序列中1的个数都是斐波那契数列.因为第 i 秒1的个数由 i - 1的1和 i - 2的0变换而来,那么f[i] = f[i - 1] + f[i - 2].序列的长度同理,第 i 秒的序列长度由 i - 1秒的长度加上 i - 1 秒的1变换而来,而i - 1秒的1的个数就是 i - 2 秒的序列长度. 至此这道题已经做完了,但题解中有一个大佬还详细的证明,具体看这里. 然后这题读了前面的字母会迷之GG,后面全RE,不读就AC. #include<cstdi…
题目背景 伊吹萃香(Ibuki Suika)正在魔法之森漫步,突然,许多西瓜(Suika)从四周飞来,划出了绚丽的轨迹.虽然阵势有点恐怖,但她还是决定抱走一些西瓜. 题目描述 萃香所处的环境被简化为一个长为h,宽为w的网格平面.X坐标范围为[1,w],y坐标范围为[1,h]. 她初始(第1个时刻)站在坐标为sx,sy的方格. 西瓜可能在任意一个方格出现,在每个时间单位,它们可能向任何一个方向移动,也可能静止不动.西瓜的位置和移动的轨迹是已知的.西瓜的总数为n个,但只有m个西瓜可以被萃香抱走,因为…
题目链接 水题,数据范围提示得太明显了吧,不用动脑子都能知道是状压. 不过还是有坑(当然更可能是我脑子有坑) f[i][j][k][l]表示当前是第i秒,萃香在(j,k),已经抱到的西瓜状态是l的最少移动次数,然后用BFS一样的办法暴力转移就行,复杂度完全过得去. #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<cctype> #d…
重构一下就过了,不知道之前错在哪里. #include<bits/stdc++.h> using namespace std; typedef unsigned long long ull; const int INF=0x3f3f3f3f; int solve(); int main() { #ifdef Yinku freopen("Yinku.in","r",stdin); #endif // Yinku solve(); } int dp[6][…
目录 题目 题解 题目 题目链接 题目背景 (三)旧都 离开狭窄的洞穴,眼前豁然开朗. 天空飘着不寻常的雪花. 一反之前的幽闭,现在面对的,是繁华的街市,可以听见酒碗碰撞的声音. 这是由被人们厌恶的鬼族和其他妖怪们组成的小社会,一片其乐融融的景象. 诶,不远处突然出现了一些密密麻麻的小点,好像大颗粒扬尘一样. 离得近了点,终于看清楚了. 长着角的鬼们聚在一起,围观着另一只鬼的表演. 那"扬尘",其实都是弹幕. 勇仪的招数之一,三步之内,所到之处弹幕云集,几乎没有生存可能. 为了强化这一…
1000. [東方S2] 伊吹萃香 输入文件:suika.in   输出文件:suika.out   简单对比 时间限制:1 s   内存限制:128 MB Problem 4 伊吹萃香(suika.cpp/c/pas) 题目描述 在幻想乡,伊吹萃香(いぶき すいか)是能够控制物体密度的鬼王.因为能够控制密度,所以萃香能够制造白洞和黑洞,并可以随时改变它们.某一天萃香闲着无聊,在妖怪之山上设置了一些白洞或黑洞,由于引力的影响,给妖怪们带来了很大的麻烦.于是他们决定找出一条消耗体力最少的路,来方便…
写在前面 \(Luckyblock\) 良心出题人, 题面好评 T1还是蛮简单的,用一个栈来维护就能过(某天听说 \(Luckyblock\) 出了套题,T1是个考栈的,看来就是这道了 注:栈的清空只需要把 \(top\) 置为 \(0\) 即可,没必要用 \(memset\) T2一开始打算单调栈+前缀和求惊喜度,但小数模法并不会,因此没写,暴力也不会打,看到正解后考虑到我的解法可能会被卡 T3暴力不知道为啥写挂了 T4输入的时候没读题,输入的 \(x\) 和 \(y\) 多打了一组,所以 \…
题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学生被雇来分发这些请柬.每个学生志愿者被指定一个确切的公共汽车站,他或她将留在那里一整天,邀请人们参与. 这里的公交系统是非常特殊的:所有的线路都是单向的,连接两个站点.公共汽车离开起始点,到达目的地之后又空车返回起始点.学生每天早上从总部出发,乘公交车到一个预定的站点邀请乘客.每个站点都被安排了一名学生.在一天结束的…
差不多是Dijkstra的裸题吧... 这道题可以分为来回两个阶段. 去的时候很简单,直接用一次Dijkstra,然后统计答案. 回来的时候就有些巧妙了,虽然表面上是每个点回到起点,但是何尝不可将其看成从起点出发,逆着每个点过来的路去找一次每个点?所以只需要存边的时候处理一下,然后直接跑Dijkstra就行了. 附上代码. #include<bits/stdc++.h> #define clean(a,i) memset(a,i,sizeof(a)) #define ll long long…
NOIP2017 D1T1 的结论,两个数$a, b$所不能表示出的最大的数为$a * b - a - b$. 听了好几遍证明我还是不会 注意到本题中给出的数都非常小,所以最大不能表示出的数$\leq 256 * 256 - 256 * 2 = 65024$. 那么直接用这个$65024$作为背包容量跑完全背包就好了. 时间复杂度$O(maxV * n)$. Code: #include <cstdio> using namespace std; ; ; int n, a[N]; bool f…