摘要: 题意:给n个积木,搭成两个高度相同的塔,问最高高度 正解是dp 答案在dp[n][0] 代码 cpp include using namespace std; int f[2][1000050],n,a[51],ans; int main(){ memset(f, 0x3f,sizeof(f)); 阅读全文
posted @ 2019-08-27 10:39 End_donkey 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题意 类似于~~就是~~背包。 解析 代码 跟解析有点不一样v[i]价值,w[i]重量,s背包容积,背包转移即可。 阅读全文
posted @ 2019-08-27 10:37 End_donkey 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 题意 dfs骗了30分,一开始想的距离正解差一点啊,贪心加dp就可以过的水题,真正太蒻了 解析 代码 cpp include using namespace std; struct node{ int x; int y; }a[210]; int m,n,k; int f[210][210]; bo 阅读全文
posted @ 2019-08-27 10:35 End_donkey 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 题意 类似于涂色问题,环形问题不多说,断环加倍即可,限制条件if判断就行。 解析 代码 cpp include using namespace std; int n,c,p,a[410]; int f[410][410],ans=1 阅读全文
posted @ 2019-08-27 10:32 End_donkey 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题意 sb题目,不多说,爆搜就能过。 代码 cpp include using namespace std; int n,m,ans=10){ ans=min(ans,data); return; } } if(x+1 阅读全文
posted @ 2019-08-27 10:28 End_donkey 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 一道状压dp题,但是竟然可以搜索搜过!!(儒雅随和)。 代码(爆搜) cpp include using namespace std; const double eps=1e 8; int T,n,m,ans; double x[25],y[25],a[25],b[25]; bool book[25 阅读全文
posted @ 2019-08-27 10:26 End_donkey 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 一道有趣的题目,首先想到合并果子,然而发现会超时,我们可以发现首先拿出来的切掉后比后拿出来切掉后还是还长,即满足单调递增,故建立三个队列即可。 代码 cpp include define p u/v using namespace std; long long n,m,len,t,a,u,v; co 阅读全文
posted @ 2019-08-27 10:25 End_donkey 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 一道sb题目,注意范围,可打表解决,打出杨辉三角,在用前缀和求解即可 代码(一维前缀和) cpp include using namespace std; int n,m,t,k,ans,a[2010][2010],b[2010][2010]; int main(){ scanf("%d %d",& 阅读全文
posted @ 2019-08-27 10:23 End_donkey 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 一道大模拟 代码 cpp include include include include using namespace std; string st[1010]; int value[26]; int f,o,s,i; int p[1010],num[1010]; int s1[150]; cha 阅读全文
posted @ 2019-08-27 10:22 End_donkey 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 题意:给n个单词,如果单词a为单词b的前缀则a,b不能共存,问能共存的集合数(包括空集) 一道dp题,排序后判断,f[i][j]表示i和j是否能共存,f[i][j]=1表示能共存,初始化dp[i]=1,表示只有i一个单词,dp[i]表示前i个单词且一定含有第i个单词的集合数,如果f[i][j]=1, 阅读全文
posted @ 2019-08-27 10:21 End_donkey 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题意 先讲一下一种容易陷入误区错误思路 要使时间最小,就去找相对于每个点的最短曼哈顿距离,然后取最大值,时间就是(maxn+1)/2。 代码 cpp include include include include include define ll long long define MX 55 us 阅读全文
posted @ 2019-08-27 10:19 End_donkey 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题意 给一个表达式然后再给n个表达式,判断是否等价 一道大模拟题,将a带为数,并且取模防止溢出 cpp include using namespace std; const int mod=10007; char w[55],c[55]; int a[100],t1,t2,x,n; long lon 阅读全文
posted @ 2019-08-27 10:16 End_donkey 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题意 在一个凹槽中放置了N层砖块,最上面的一层油N块砖,从上到下每层一次减少一块砖。每块砖都有一个分值,敲掉这块砖就能得到相应的分值,如图所示。 如果你想敲掉第i层的第j块砖的话,若i=1,你可以直接敲掉它;若i 1,则你必须先敲掉第i 1层的第j和第j+1块砖。 你现在可以敲掉最多M块砖,求得分最 阅读全文
posted @ 2019-08-27 10:14 End_donkey 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 有一个邮递员要送东西,邮局在结点1。他总共要送N 1样东西,其目的地分别是2~N。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间。这个邮递员每次只能带一样东西。求送完这N 1样东西并且最终回到邮局最少需要多少时间。 很容易发现我们要求 $\sum_{j 阅读全文
posted @ 2019-08-27 10:09 End_donkey 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题意 给出n n 的图,A为起点,B为终点, 为障碍,.可以行走,问最少需要拐90度的弯多少次,无法到达输出 1。 解析 思路:构造N M 4个点,即将原图的每个点分裂成4个点。其中点(i,j,k)表示在(i,j)时人的方向是k,然后对于两个点(i,j,k)和(i,j,kk),如果k和kk是两个旋转 阅读全文
posted @ 2019-08-27 10:00 End_donkey 阅读(127) 评论(0) 推荐(0) 编辑
摘要: T组数据,给出N,求出N!最右边非零的数。 对于30%的数据,N using namespace std; int T,n,ans,mod,rest,x; bool flag; const int v[10]={1,1,2,6,4,4,4,8,4,6}; char s[3000]; int a[30 阅读全文
posted @ 2019-08-27 09:58 End_donkey 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 纯数论 30分:纯暴力,直接模拟判断t秒后,判断hp是否小于0 60分: atk =h,就是一炮一个,那么军队会在min(n,t)秒之后停止攻击,那么总伤害就是a[n+(n 1) +(n 2)+........(n min(n,t)+1) 等差数列求和d=a(2n min(n,t)+1) (min( 阅读全文
posted @ 2019-08-27 09:55 End_donkey 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 共t条街对于每一条街上有n个店铺(n可能不相同),每次只能选两端第一个营业的店铺采购,采购第i个店铺会获得幸福度ai,采购完后,这个店铺和它相邻的店铺便会关门,问最大幸福度? 考场想了一下dp,一开始想一维但发现不好处理,二维参数也没有想出来,于是便开始了我的暴力瞎搞之旅,我随手写了几个例子发现对于 阅读全文
posted @ 2019-08-27 09:52 End_donkey 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题意 跑两边spfa的水题,注意判断有人才取最大值 代码 cpp include using namespace std; inline int read(){ int x=0,f=1; char ch=getchar(); while(ch'9'){ if(ch==' ') f= 1; ch=ge 阅读全文
posted @ 2019-08-27 09:47 End_donkey 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题意 1到n个自然数中选k个自然数要求两两不相邻,问有多少种方法,模m eg(1 3 5 ) 又是一道打表规律题,正常解法dp可以通过前缀和优化到O(N K)。另外我们可以重新定义F[I,J]表示从1到I中选择J个不连续数的方案数。通过考虑I选还是不选来进行状态转移。 1.如果不选I:则方案数为F[ 阅读全文
posted @ 2019-08-27 09:45 End_donkey 阅读(147) 评论(0) 推荐(0) 编辑