题目链接:装箱问题 这题经典的01背包. 动规. 设计状态f[n][V]表示前n个物体放在V中的最大体积是多少. 所以代码如下: #include<bits/stdc++.h> using namespace std; int f[35][20003]; int dp(int* v,int V,int n){ if(f[n][V]>0){ return f[n][V]; } if(n==0){ return 0; } if(V>=v[n-1]){ f[n][V]=max(dp(v,…
题目链接:数的划分 这题直接搜索就行了.给代码,思路没什么好讲的,要讲的放在代码后面: #include<bits/stdc++.h> using namespace std; int dfs(int n,int k,int cur){ if(k==1){ return 1; //1 } int ans=0; for(int i=cur;i*k<=n;i++){ //2 ans+=dfs(n-i,k-1,i); } return ans; } int main(){ int n,k; s…
哈,水题测试又来了! 上次的水题简单吧! 答案是以单题形式发布的(旅行家的预算随后发布). 下面来看今天的题,还是水题. 时间限制:5小时 题目一:看上去就很水 题目二:比上面一题还水 题目三:数的划分 题目四:装箱问题 题目五:金明的预算方案 题目六:税收与补贴问题 题目七(水题加试):均分纸牌 今天题目更多,但还是很水的. Let's do it!…
题目链接:HXY玩卡片 很水, 简单讲一下思路. 如果没有0,直接无解,因为不可能是10的倍数. 是9的倍数,则各个数位上的数字和为9的倍数,所以5的数量一定是9的倍数,所以只要尽可能多输出9的倍数个5,然后把0全放后面就行. 下面给代码: #include<bits/stdc++.h> using namespace std; int main(){ int n; int nz=0,nf=0; scanf("%d",&n); for(int i=0;i<n;…
题目链接:Peter的烟 这道题基本做法很水,不解释. #include<bits/stdc++.h> using namespace std; int main(){ int n,k; scanf("%d%d",&n,&k); int ans=0; int num=0; //1 while(n>0){ ans+=n; int x=n+num; num=x%k; n=x/k; } printf("%d",ans); return 0…
日常水题测试又来了! 以后答案都以单题形式公布. 下面看今天的水题: 时间限制:5小时 题目一:无法形容的水 题目二:比上一题还水 题目三:一元三次方程求解 题目四:单词接龙 题目五:统计单词个数 题目六:乒乓球 题目七:栈 题目八:守望者的逃离 水题没话说,昨天感觉时间都多了! 开始吧! Let's do it!…
题目链接:失踪的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; struct point{ //1 int p; //2 int lc…
题目链接:旅行家的预算 这题还可以,不算太水. 这题贪心即可. 我们采取如下动作: 如果在装满油的情况下能到达的范围内,没有加油站,则无解. 如果在装满油的情况下能到达的范围内,油价最低的加油站的油价比当前高,那就装满油再走. 如果在装满油的情况下能到达的范围内,油价最低的加油站的油价比当前低,我们使油够到达那个加油站即可,如果当前的油比需要的多,我们分两种情况考虑:第一,这个最低油价比上一个加油的站价格高,那么我们就直接过去:第二,这个最低油价比上一站油价低,那么我们把多余的油退回上一个加油站…