- 博客(20)
- 收藏
- 关注
原创 codevs砝码称重 回溯+动态规划
题目描述 Description现有n个砝码,重量分别为a1,a2,a3,……,an,在去掉m个砝码后,问最多能称量出多少不同的重量(不包括0)。输入描述 Input Description输入的第1行为有两个整数n和m,用空格分隔第2行有n个正整数a1,a2,a3,……,an,表示每个砝码的重量。输出描述 Output Descript
2015-05-10 11:07:15
559
原创 codevs N皇后问题 回溯法
题目描述 Description在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于再n×n的棋盘上放置n个皇后,任何2个皇后不妨在同一行或同一列或同一斜线上。输入描述 Input Description 给定棋盘的大小n (n ≤ 13)输出描述 Output
2015-05-09 23:53:11
1289
原创 codevs 摆花
题目描述 Description小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。试编程计算,一共有多少种不同的摆花方案。输入描述 Input Descripti
2015-05-07 10:27:21
850
原创 UVA 10954 Add All
Yup!! The problem name reflects your task; just add a set of numbers. But you may feel yourselves condescended, to write a C/C++ program just to add a set of numbers. Such a problem will simply questi
2015-05-05 17:11:26
413
原创 线段覆盖 大数 贪心算法
关于上一题的线段覆盖问题,除了用那种逐一情况排除以外,还可以用贪心算法进行计算,适用于数据较大不方便进行双层循环时,当然数据小时肯定可以啦~好了,上代码~#include#include#include using namespace std;struct point{ int l,r;}d[1100006];bool cmp(const struct point &a,co
2015-05-02 15:57:44
676
原创 codevs线段覆盖 动态规划
题目描述 Description 给定x轴上的N(0输入描述 Input Description 输入第一行是一个整数N。接下来有N行,每行有二个空格隔开的整数,表示一条线段的二个端点的坐标。输出描述 Output Description 输出第一行是一个整数表示最多剩下的线段数。样例输入 Sam
2015-05-02 15:35:11
608
原创 Dijkstra算法模板
要说的都在代码里了~~~#includeusing namespace std;int book[106]={0};int a[106][106];//记录每两个点之间的距离 int dis[10006]; //记录每个点到点1的距离 #define inf 99999999int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i
2015-05-02 15:05:07
290
原创 codevs 进制转换 模拟
我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式。例如:123可表示为 1*102+2*101+3*100这样的形式。 与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式。一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制
2015-04-30 23:38:48
1083
原创 归并排序求逆序对
题目描述 Description给定一个序列a1,a2,…,an,如果存在i并且ai>aj,那么我们称之为逆序对,求逆序对的数目 数据范围:N5。Ai5。时间限制为1s。输入描述 Input Description第一行为n,表示序列长度,接下来的n行,第i+1行表示序列中的第i个数。输出描述 Output Descripti
2015-04-23 20:23:42
426
原创 codevs火柴棒等式 枚举
题目描述 Description给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示:注意:1. 加号与等号各自需要两根火柴棍2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0)3. n根火柴棍必须全部用上输入描述 In
2015-04-21 10:58:07
434
原创 codevs均分纸牌 贪心算法
题目描述 Description有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。 现在要求找出一种移动方法,用最少的移动
2015-04-21 00:50:22
1232
原创 codevs石子归并 动态规划
题目描述 Description有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1]。问安排怎样的合并顺序,能够使得总合并代价达到最小。输入描述 Input Description第一行一个整数n(n第二行n个整数w1,w2...wn (wi 输出描述
2015-04-20 01:17:54
417
1
原创 codevs合唱队形 动态规划求最长递增子序列
题目描述 Description N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1Ti+1>…>TK(1 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的
2015-04-19 00:27:22
407
原创 Floyd-Warshall算法求任意两点间最短路径
Floyd-Washall算法,实际上就是多次比较两点之间的距离,最终找出最优解,直接上代码:#includeusing namespace std;int e[16][16];int inf=99999999;int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) {
2015-04-19 00:01:33
951
原创 计算多项式系数杨辉三角
题目描述 Description给定一个多项式(ax + by)^k,请求出多项式展开后x^n y^m项的系数。输入描述 Input Description共一行,包含 5 个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开。输出描述 Output Description输出共 1 行,包含一个整数,表示所求的系数,这个系
2015-04-17 11:09:49
1313
原创 线性筛选法统计素数个数
题目描述 Description判断[a,b]中素数的个数输入描述 Input Description输入共1行,a,b两数输出描述 Output Description输出共1行,输出素数的个数样例输入 Sample Input3 5样例输出 Sample Output2
2015-04-17 10:21:59
382
原创 codevs 星际跳跃并查集的应用
//这道题是比较简单的,是一个比较基本的并查集的应用,但是要熟练掌握这道题背后的思想 #includeint parent[20002],n,m,x;int find(int a)//找老大函数 { if(parent[a]==a) return a; parent[a]=find(parent[a]);//老大的老大还是他的老大 return parent[a
2015-04-16 17:06:41
386
原创 高精度除法
高精度除法,其实还是模拟,不过需要结合高精度加法、减法进行模拟#include#includeusing namespace std;string rev(string a){ string ret=a; int n=a.size(); for(int i=0;i<n/2;i++) { swap(ret[i],ret[n-i-1]);//得到逆
2015-04-16 16:20:23
315
原创 UVA 401 Palindromes
A regular palindrome is a string of numbers or letters that is the same forward as backward. For example, the string"ABCDEDCBA" is a palindrome because it is the same when the string is read from left
2015-04-14 13:29:22
296
原创 UVA 136 Ugly Numbers
#include#includeusing namespace std;int ugly[1506];int getmin(int a,int b,int c)//找出三个数中最小的 { if(a<=b) { if(a<=c) return a; else return c; } else { if(
2015-04-14 11:28:49
345
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人