【ZOJ 4070】Function and Function】的更多相关文章

[链接] 我是链接,点我呀:) [题意] [题解] 递归一会. 会发现最后肯定是0,1一直循环. 开始循环之后就直接返回结果就好. [代码] #include <bits/stdc++.h> #define ll long long #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) using namespace std; const int N…
#-*- coding: UTF-8 -*- #超时#        lenA=len(A)#        maxSum=[]#        count=0#        while count<lenA:#            tmpSum=0#            for i in xrange(lenA):#                tmpSum+=i*A[i-count]#            maxSum.append(tmpSum)#            coun…
原因: 低版本7.0中没有mapminmax这个函数,对应的归一化函数是premnmx和postmnmx,具体请查看着两个函数的用法升级到2009就肯定可以正常使用这个函数了 解释: premnmx.tramnmx.postmnmx.mapminmaxpremnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内.premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T),其中P,T分别为原始输入和输出数…
[链接] 我是链接,点我呀:) [题意] [题解] 按照两个区间的排列方式 我们可以分成以下几种情况 会发现这两个区间的作用 最多只能把两段连续不同的区间变为相同. 那么写个for处理出连续不相同的一段的个数cnt. 根据上面的排列方式. 算出每个cnt对应的答案即可. 别忘了有些情况可以乘2. [代码] #include <bits/stdc++.h> #define ll long long #define rep1(i,a,b) for (int i = a;i <= b;i++)…
[链接] 我是链接,点我呀:) [题意] [题解] 统计a中0的个数cnt0 然后m减去cnt0 因为这cnt0个0是一定会取到的. 如果m==0了 那么直接找到数组中的最小值mi 输出mi-1就好 否则 找到剩余的前m个非0的数字 设第m个非0数字为a[i],则在i+1..n中再取最小值mi 则输出前m个非0数字和+mi-1 m<0的话,impossible n==m的话,Richman [代码] #include <bits/stdc++.h> #define ll long lon…
[链接] 我是链接,点我呀:) [题意] [题解] 二分最后的最大抵御值mid. 然后对于每个蘑菇. 都能算出来它要浇水几次mid/ai 然后如果第i个蘑菇没浇水达到要求次数. 就在i和i+1之间来回走动(注意改变第i+1个蘑菇的状态) 直到满足每个蘑菇的浇水需求为止. 注意如果到了最后一个蘑菇所在的位置之后. 如果这个蘑菇已经不需要浇水了 那么就没有必要来到第n个位置.直接在n-1位置停下来就ok了 [代码] #include <bits/stdc++.h> #define ll long…
[链接] 我是链接,点我呀:) [题意] [题解] /* for a[1] from 1~9 1*1=1 2*1=2 3*1=3 1*2=2 2*2=4 3*2=6 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 1*5=5 2*5=10 3*5=15 1*6=6 2*6=12 3*6=18 1*7=7 2*7=14 3*7=21 1*8=8 2*8=16 3*8=24 1*9=9 2*9=18 3*9=27 use "c[i]" or "c[i]c…
ZOJ 3200 首先我写了个高斯消元,但是消出来了一些奇怪的东西,我就放弃了... 然后只好考虑dp:\(dp[i][j][k]\)表示走到了第i步,到了\((j,k)\)这个节点的概率. 那么答案就是边上节点在所有的步数走到的概率加起来第一次超过\(p%\)的地方. 然后转移的时候枚举现在要走到哪一个方向,走到\((j',k')\),就可以转移到\(dp[i+1][j'][k']\). 然后一共需要走的步数是看对于当前这一步所有的节点所能到达的概率是不是都是0(为了浮点误差,我们需要把=0改…
ZOJ 3463 题意:有一个钢琴,一个人把左手放在L位置上,右手放在R位置上,要弹某\(n\)个键,每个手最多能够得着9个位置,并且两只手不能交叉.把手移动的代价是大拇指移动的距离的平方根.问弹完这么多键之后最少花的代价. 思路:肯定是dp啊.考虑\(dp(i,j,k)\)表示当前要弹第i个键,左手大拇指在j位置,右手大拇指在k位置,最少代价. 然后转移的时候肯定只会移动一只手.那么从J移动到j',从i移动到i'都要被算到. 并且还要判断两只手是否会重叠,我数数都能数错...连wa两次...真…
http://www.lydsy.com/JudgeOnline/problem.php?id=4070 分块建图. 对每个\(P_i\)分类讨论,\(P_i>\sqrt N\)则直接连边,边数少于\(\sqrt N\). 对每个横跨长度\(\leq\sqrt N\)的边,建一条"滑轨",当\(P_i\leq\sqrt N\)时则把这个点送到滑轨上,可以到任何一个位置下来.一共要建\(\sqrt N\)条滑轨. 最后跑最短路就可以了,uoj上死活过不了hack数据,貌似过了的都没…