焦作专题

ACM-ICPC 2018 焦作赛区网络预赛 B Mathematical Curse(DP)

题目链接:https://nanti.jisuanke.com/t/31711   题目大意:n个数字,m个运算符,按照顺序插入运算符,使得最后计算的结果最大   题目思路:普通dp,dpmax[i][j]表示第i个数字用到第j个运算符的最大值。这题不但需要维护最大值还需要维护最小值,因为可能乘以一个负数,极小值乘以一个负数后可能成为最大值,反之亦成立,除法也是一个道理,然后一路维护即可

ACM-ICPC 2018 焦作赛区网络预赛 K Transport Ship(多重背包)

题目链接:https://nanti.jisuanke.com/t/31720   题目大意:n个船,每个船载重vi,数量2^ci-1,问载重正好是s有几种情况   题目思路:由于固定了数量,所以很容易想到是多重背包。问的是方案数,所以设dp[0]为1,剩下来初始化为0,然后上去跑多重背包板子就过了   以下是代码: #include<bits/stdc++.h>using nam

ACM-ICPC 2018 焦作赛区网络预赛 L Poor God Water(BM算法)

题目链接:https://nanti.jisuanke.com/t/31721   题目大意:三种食物,n小时,连续三小时不能吃一样的东西,中间吃巧克力时连续三个小时吃的东西不能完全不同,如果中间吃鱼或者饭两边不能同时吃巧克力。   题目思路:用3个小时的情况,推出dp公式,然后暴力前10个以后扔进杜教的bm板子就过了。 暴力代码(正解在下面)如下: #include<bits/std

ACM-ICPC 2018 焦作赛区网络预赛 H. String and Times—— 后缀自动机

Now you have a string consists of uppercase letters, two integers AA A and BB B. We call a substring wonderful substring when the times it appears in that string is between AA A and BB B ( A≤times≤BA

ACM-ICPC 2018 焦作赛区网络预赛 B. Mathematical Curse

题目:点击打开链接 题意:有n个数和m个运算符,按顺序选m个数进行运算,初值为k,问最后能得到的最大值是多少。 分析:dp[i][j]表示选到了第i个数时用了j个运算符,观察发现,一个数只能由它前一个状态的最大值或最小值转移过来(因为乘上一个负数会使最小的数变最大),所以我们同时维护最大最小。 代码: #pragma GCC optimize(2)#pragma GCC optimize

ACM-ICPC 2018 焦作赛区网络预赛G Give Candies

题目:点击打开链接 题意:给你n个东西,叫你把n分成任意段,这样的分法有几种。 分析:(HDU 4704原题)隔板法,ans=C(1,n-1)+C(2,n-1)+...+C(n-1,n-1)=2^(n-1)。需要用到欧拉降幂公式,参考打开,证明需要用到欧拉定理,a^(φ(m))同余1(mod m) (a与m互质),参考打开。 代码: #pragma GCC optimize(2)#pra

ACM-ICPC 2018 焦作赛区网络预赛 J

题目:点击打开链接 题意: (bzoj1213原题)让你分别判断n或(n-1)*n/2是否是完全平方数。 分析:二分即可,或者(牛顿迭代法求平方根),本质都是一样的,都是二分的思想,很久没写Java了,手生了。 代码: import java.util.Scanner;import java.math.BigInteger;class Main {public static void m

ACM-ICPC 2018 焦作赛区网络预赛 I. Save the Room(水)

题目链接:https://nanti.jisuanke.com/t/31718 样例输入 1 1 21 1 41 1 1样例输出 YesYesNo 题意:a*b*c的立方体,问能不能用1*1*2的立方体不重叠的放满 思路:胆子放大,猜完就交,abc三遍任意一边能被2整除,就可以做到不重叠放满 #include<cstdio>#include<cstring>#incl