题目链接:旅行家的预算 这题还可以,不算太水. 这题贪心即可. 我们采取如下动作: 如果在装满油的情况下能到达的范围内,没有加油站,则无解. 如果在装满油的情况下能到达的范围内,油价最低的加油站的油价比当前高,那就装满油再走. 如果在装满油的情况下能到达的范围内,油价最低的加油站的油价比当前低,我们使油够到达那个加油站即可,如果当前的油比需要的多,我们分两种情况考虑:第一,这个最低油价比上一个加油的站价格高,那么我们就直接过去:第二,这个最低油价比上一站油价低,那么我们把多余的油退回上一个加油站…
你们从题目也能看出来今天的题是很水的. 前几期答案还没出,效率有点低,谅解,谅解. 今天的答案应该会出的很快. 下面给题目: 时间限制:3小时 题目一:旅行家的预算 题目二:进制转换 题目三:乘积最大 题目四:求先序排列 题目五:要多水有多水 题目六:比上一题还水 时间应该是够的,最后两题真心水. 答案今晚应该能出,要不就是明晚. 尽量今晚出. 祝各位好运.…
题目链接:失踪的7 水题,不解释. #include<bits/stdc++.h> using namespace std; int main(){ int t; scanf("%d",&t); while(t--){ int n,ans; scanf("%d",&n); ans=n; for(int i=7;i<=n;i++){ int x=i; while(x>0){ if(x%10==7){ ans--; break;…
题目链接:子数整数 水题,不解释,自己看代码: #include<bits/stdc++.h> using namespace std; int main(){ int k; scanf("%d",&k); int num[5]; int ok=0; for(int i=10000;i<=30000;i++){ int sub1=0,sub2=0,sub3=0; int x=i; for(int j=0;j<5;j++){ num[j]=x%10; x/…
题目链接:进制转换 这题得明白其中的数学方法,明白后就不难了. 那么我们应该怎么计算呢? 其实也很简单. 我们依然采取辗转相除法. 但是,对于负的余数,我们需要进行一些处理. 我们怎么处理呢? 很简单,我们只需要将余数加上我们的进制数的绝对值,然后将商加一,即可. 所以代码如下: #include<bits/stdc++.h> using namespace std; char num[]="0123456789ABCDEFGHIJ"; //1 int main(){ in…
题目链接:求先序排列 这道题讲白了,就是数的构造,然后遍历. 思路大致是这样: 我们先通过后序遍历,找到当前区间的根,然后在中序遍历中找到根对应的下标,然后就可以分出左右子树,建立当前根与左右子树根的关系,然后分为两段,重复该操作即可. 先序遍历也没有什么难的,先输出根,然后判断是否有左右子树,有的话递归输出,没有就算. 下面上代码: #include<bits/stdc++.h> using namespace std; struct point{ //1 int p; //2 int lc…
题目链接:乘积最大 这道题显然是道区间dp. 难度不是很大. 思路也很清晰. 我们设计一个三维状态. ans[l][r][k] 这里表示在闭区间[l,r]上操作k次的最大值. 操作就是加乘号. 转移也很好转移,写一个双循环,外层循环断点,内层循环两段的操作次数. 下面放代码: #include<bits/stdc++.h> #ifdef WIN32 #define LL "%I64d" #else #define LL "%lld" #endif usi…
哈,水题测试又来了! 上次的水题简单吧! 答案是以单题形式发布的(旅行家的预算随后发布). 下面来看今天的题,还是水题. 时间限制:5小时 题目一:看上去就很水 题目二:比上面一题还水 题目三:数的划分 题目四:装箱问题 题目五:金明的预算方案 题目六:税收与补贴问题 题目七(水题加试):均分纸牌 今天题目更多,但还是很水的. Let's do it!…
日常水题测试又来了! 以后答案都以单题形式公布. 下面看今天的水题: 时间限制:5小时 题目一:无法形容的水 题目二:比上一题还水 题目三:一元三次方程求解 题目四:单词接龙 题目五:统计单词个数 题目六:乒乓球 题目七:栈 题目八:守望者的逃离 水题没话说,昨天感觉时间都多了! 开始吧! Let's do it!…
题目链接:栈 这题不难. 我们看一下,其实可以发现是卡特兰数. 不知道卡特兰数?没事,给你简单讲一下. 卡特兰数的递推式f(n)=f(0)*f(n-1)+f(1)*f(n-2)+-+f(n-2)*f(1)+f(n-1)*f(0) 这样你应该能发现规律了. 我们枚举栈空的情况就能发现是卡特兰数,我们一定有一刻是栈空的,我们枚举这一个时刻,就好像将这个序列分成两部分,第一部分为i,第二部分为n-1-i,又是乘法原理,所以相乘,最后累加即可. 给代码: #include<bits/stdc++.h>…