最大堆是一种很有用的数据结构,它是一颗完全二叉树,并且如果一个节点有儿子节点,其关键字都不小于其儿子节点的关键字。(最小树反之:节点值不大于儿子节点的完全二叉树。) 最大堆使用的一个典型的地方就是找出无序数字中,最大的一个数字。比如100亿整数中找出最小的前100个数字,典型的解决方案之一就是...
分类:
其他好文 时间:
2014-07-06 19:17:07
阅读次数:
127
1、概述 给定4个整数,当中每一个数字仅仅能使用一次;随意使用 + - * / ( ) ,构造出一个表达式,使得终于结果为24,这就是常见的算24点的游戏。这方面的程序非常多,一般都是穷举求解。本文介绍一种典型的算24点的程序算法,并给出两个详细的算24点的程序:一个是面向过程的C实现,一个是面向....
分类:
其他好文 时间:
2014-07-06 15:16:16
阅读次数:
149
10581 - Partitioning for fun and profit
题目链接
题意:给定m, n,表示分配给n个格子,分配m个数字进去,每个格子最少1,并且序列要是递增的,问第k个字典序的序列是什么
思路:先利用dp打出表,dp[i][j][k]表示第i个数,尾巴为j,总和剩下k的情况,写一个记忆化求出,之后在这个数组基础上,从左往右枚举要放那个数字合适,合适的就放进...
分类:
其他好文 时间:
2014-07-06 11:41:28
阅读次数:
225
完美数
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 128000/64000 KB (Java/Others)
SubmitStatistic Next
Problem
Problem Description
8是中国人很喜欢的一个数字,但是如果有3的存在就变成了38,就不是很好了。。
你能告诉我,在[L,...
分类:
其他好文 时间:
2014-07-06 10:51:26
阅读次数:
185
数组中只出现一次的数字 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 一个整型数组里除了两个数字以外, 其他的数字都出现了两次. 请写程序找出这两个只出现一次的数字.如果从头到尾依次异或数组中的每一个数字, 那么最终的结果刚好是那个只出现一次的数字.根据结果数组二进制某一位为1, 以此分组, 为1的一组, 为0的一组, 再重新进行异或. 最后得...
分类:
其他好文 时间:
2014-07-06 10:04:23
阅读次数:
169
Description
小明最近宅在家里无聊,于是他发明了一种有趣的游戏,游戏道具是N张叠在一起的卡片,每张卡片上都有一个数字,数字的范围是0~9,游戏规则如下:
首先取最上方的卡片放到桌子上,然后每次取最上方的卡片,放到桌子上已有卡片序列的最右边或者最左边。当N张卡片全部都放到桌子上后,桌子上的N张卡片构成了一个数。这个数不能有前导0,也就是说最左边的卡片上的数字不能是0。游戏的...
分类:
其他好文 时间:
2014-07-06 09:35:07
阅读次数:
176
链接:http://poj.org/problem?id=1179
题意:给出一个多边形,多边形的每个顶点是一个数字,每条边是一个运算符号“+”或者“x"。要求的过程如下,手下移除一条边,即这条边不做运算。之后每次移除一条边,将其两边的数字进行对应边的运算,用得到的数字来替代原来的两个点。要求所有边都移除以后得到的最大的答案。
思路:典型的区间DP,在过程中每次操作的处理方式为dp_max[i...
分类:
其他好文 时间:
2014-07-06 08:58:50
阅读次数:
242
一、最基本的用法cin>>
接收一个数字、字符、字符串,遇“空格”、“TAB”、“回车”都结束
例如: #include
using namespace std;
main ()
{
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
}输入:5[回车]6[回车]
输出:11
(其中回车可替换成空格或者TA...
分类:
编程语言 时间:
2014-07-06 00:16:27
阅读次数:
270
给一个数字方阵,你要从中间取出一些数字,保证相邻的两个数字不同时被取出来,求取出来的最大的和是多少?建立图模型,对于行列的和为奇数的格子,建立一条从原点到达这个点的边,对于行列和为偶数的格子,建立一条从该点到汇点的边,流量均为这个数;对于相邻的格子,建立一条无穷大流量的边,这样要求最大的独立和,我们...
分类:
其他好文 时间:
2014-07-05 22:25:34
阅读次数:
159
数组中的逆序对 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 在数组中的两个数字如果前面一个数字大于后面的数字, 则这两个数字组成一个逆序对.输入一个数组, 求出这个数组中的逆序对的总数.使用归并排序的方法, 辅助空间一个排序的数组, 依次比较前面较大的数字, 算出整体的逆序对数, 不用逐个比较.时间复杂度: O(nlogn)代码:/*
* ...
分类:
其他好文 时间:
2014-07-04 00:27:34
阅读次数:
329