题目链接:数的划分 这题直接搜索就行了.给代码,思路没什么好讲的,要讲的放在代码后面: #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…
题目链接:装箱问题 这题经典的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,…
哈,水题测试又来了! 上次的水题简单吧! 答案是以单题形式发布的(旅行家的预算随后发布). 下面来看今天的题,还是水题. 时间限制: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…
题目链接:栈 这题不难. 我们看一下,其实可以发现是卡特兰数. 不知道卡特兰数?没事,给你简单讲一下. 卡特兰数的递推式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>…
题目链接:旅行家的预算 这题还可以,不算太水. 这题贪心即可. 我们采取如下动作: 如果在装满油的情况下能到达的范围内,没有加油站,则无解. 如果在装满油的情况下能到达的范围内,油价最低的加油站的油价比当前高,那就装满油再走. 如果在装满油的情况下能到达的范围内,油价最低的加油站的油价比当前低,我们使油够到达那个加油站即可,如果当前的油比需要的多,我们分两种情况考虑:第一,这个最低油价比上一个加油的站价格高,那么我们就直接过去:第二,这个最低油价比上一站油价低,那么我们把多余的油退回上一个加油站…
题目链接:进制转换 这题得明白其中的数学方法,明白后就不难了. 那么我们应该怎么计算呢? 其实也很简单. 我们依然采取辗转相除法. 但是,对于负的余数,我们需要进行一些处理. 我们怎么处理呢? 很简单,我们只需要将余数加上我们的进制数的绝对值,然后将商加一,即可. 所以代码如下: #include<bits/stdc++.h> using namespace std; char num[]="0123456789ABCDEFGHIJ"; //1 int main(){ in…
你们从题目也能看出来今天的题是很水的. 前几期答案还没出,效率有点低,谅解,谅解. 今天的答案应该会出的很快. 下面给题目: 时间限制:3小时 题目一:旅行家的预算 题目二:进制转换 题目三:乘积最大 题目四:求先序排列 题目五:要多水有多水 题目六:比上一题还水 时间应该是够的,最后两题真心水. 答案今晚应该能出,要不就是明晚. 尽量今晚出. 祝各位好运.…
题目链接:乘积最大 这道题显然是道区间dp. 难度不是很大. 思路也很清晰. 我们设计一个三维状态. ans[l][r][k] 这里表示在闭区间[l,r]上操作k次的最大值. 操作就是加乘号. 转移也很好转移,写一个双循环,外层循环断点,内层循环两段的操作次数. 下面放代码: #include<bits/stdc++.h> #ifdef WIN32 #define LL "%I64d" #else #define LL "%lld" #endif usi…
首先说一下BSGS的一个坑点: 解方程A^x≡B(mod p) 需要特判一个东西=>A%p==B%p==0? 如果相等的话puts("1")反之则无解. 因为如果A%p=0,那么无法移项,导致BSGS算法的错误 进入正题: 一   卡特拉数(C(2*n,n)/(n+1))用于处理01序列里任意位置0的个数>1的情况.. 但知道定义没用,重要的是打表找规律. 善于用next_permutation,搜索等工具找出前几项. 记住卡特兰数的前几项:1 2 5 14 42 132…
ACM小白...非常费劲儿的学习中,我觉得目前我能做出来的都可以划分在水题的范围中...不断做,不断总结,随时更新 POJ: 1004 Financial Management 求平均值 杭电OJ: 1001  Sum Problem 相加1002  A + B Problem II 模拟人工加法-精度计算 1008 Elevator 很水,但是情况要考虑全面…
题目链接: https://cn.vjudge.net/problem/SGU-105 题目大意: 定义一个数列 1,12,123,1234,12345......12345678910,1234567891011 求第1-n项中能整除3的项的项数 解题思路: 水题,找规律就行 #include<bits/stdc++.h> using namespace std; int main() { int n, ans; cin >> n; ans = n / * ; == )ans++…
1061: 从三个数中找出最大的数 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 154  Solved: 124[Submit][Status][Web Board] Description 定义一个带参的宏(或者模板函数),从三个数中找出最大的数. Input 3个短整型数,空格隔开 3个实数,空格隔开 3个长整数,空格隔开 Output 最大的数,对于实数保留2位小数. Sample Input 1 2 3 1.5 4.7 3.2 12345…
题二 数的划分(20分) 问题描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问有多少种不同的分法. 输入:n,k (6<n<=200,2<=k<=6) 输出:一个整数,即不同的分法. 样例 输入: 7 3 输出:4 {四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;} [思路] 递推. 递推式d[i][j]=d[i-1][j-1]+d[i-j][j]…
问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 输入的第一行包含一个整数n,表示给定整数的个数. 第二行包含所给定的n个整数. 输出格式 输出一个整数,表示值正好相差1的数对的个数. 样例输入 6 10 2 6 3 7 8 样例输出 3 样例说明 值正好相差1的数对包括(2, 3), (6, 7), (7, 8). 评测用例规模与约定 1<=n<=1000,给定的整数为不超过10000的非负整数.   析:水题,可以直接暴力n*n不会超时,也可以先排序,再…
啊一道水题有什么好说的 上课听不懂,下课泪两行. 有的人什么套路都会,我.. 只能可怜巴巴的抄代码,然后自己总结,顺(zhu)便(yao)颓博客 1.递推dp的思路做到一半死了,怎么也想不出来如何处理上边界 最后我灵光一闪颓了题解,get到了递推的处理方法. 仍然是朴素的for循环,从高位开始枚举,如果满足限制则后边的数位可以无限制地选择,动用预处理的数组 如果不满足了,break掉,后边全废. 40分:忘记处理第10位(话说虽然他写的是2e9但是的确有10位数字..)&&上界处理不当(小…
这里是杭电hdu上的链接:http://acm.hdu.edu.cn/showproblem.php?pid=3999  Problem Description: As we know,the shape of a binary search tree is greatly related to the order of keys we insert. To be precisely: 1.  insert a key k to a empty tree, then the tree becom…
6322.Problem D. Euler Function 题意就是找欧拉函数为合数的第n个数是什么. 欧拉函数从1到50打个表,发现规律,然后勇敢的水一下就过了. 官方题解: 代码: //1004-欧拉函数水题 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; typede…
偶数求和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 69010    Accepted Submission(s): 29401 Problem Description 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值.编程输…
众数问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 所谓众数,就是对于给定的含有N个元素的多重集合,每个元素在S中出现次数最多的成为该元素的重数, 多重集合S重的重数最大的元素成为众数.例如:S={1,2,2,2,3,5},则多重集S的众数是2,其重数为3. 现在你的任务是:对于给定的由m个自然数组成的多重集S,计算出S的众数及其重数. 输入 第一行为n,表示测试数据组数.(n<30) 每组测试的第一行是一个整数m,表示多重集S中元素的个数为m 接下来的一行中…
P1025 数的划分 学傻了,学傻了,什么dp搜索什么啊: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,k; int sum; void dfs(int x,int s,int num) { ) { sum++; return ; } for(int i=x;i<=s/num;i++) { dfs(i,s-i,num-); } } int mai…
折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13355    Accepted Submission(s): 9247 Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分…
一只小蜜蜂... Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepted Submission(s): Problem Description 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数. 其中,蜂房的结构如下所示. Input 输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个…
做水题的感觉真好系列 HDU 2084 数塔 1: 12: 1 23: 1 2 34: 1 2 3 45: 1 2 3 4 5 dp[i][j]第i行第j个数取得的最大值dp[i][j] = max(dp[i-1][j-1], dp[i-1][j]) + a[i][j]. 代码: /********************************************************* Problem : 2084 ( 数塔 ) Judge Status : Accepted RunI…
Problem Description 妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐.现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵. Input 输入含有一些数据组,每组数据包括菜种(字串),数量(计量单位不论,一律为double型数)和单价(double型数,表示人民币元数),因此,每组数据的菜价就是数量乘上单价啊.菜种.数量和单价之间都有空格隔开的. Output 支付菜价的时候,由于最小支付单位是角,所以总是在支付的时候采用四舍五入的…