CODEVS1533 互斥的数(哈希表)
给定一个集合,要求一个最大子集,满足两两之间不互斥。对两个数x,y互斥的定义是,y=p*x。
先对集合中的数从小到大排序后线性扫,若一个数x可以取则取,取完之后p*x这个数不可取。由于数字较大,使用哈希表来判断。
- Program CODEVS1533;
- const maxn=;
- var a,f:array[..maxn] of longint;
- num,m,n,i,j,k,x,y,z:longint;
- procedure sort(l,r: longint);
- var
- i,j,x,y: longint;
- begin
- i:=l;
- j:=r;
- x:=a[(l+r) div ];
- repeat
- while a[i]<x do
- inc(i);
- while x<a[j] do
- dec(j);
- if not(i>j) then
- begin
- y:=a[i];
- a[i]:=a[j];
- a[j]:=y;
- inc(i);
- j:=j-;
- end;
- until i>j;
- if l<j then
- sort(l,j);
- if i<r then
- sort(i,r);
- end;
- procedure insert(x:longint);
- var h:longint;
- begin
- h:=x mod maxn;
- while (f[h]<>) and (f[h]<>x) do
- h:=(h+) mod maxn;
- f[h]:=x;
- end;
- function find(x:longint):boolean;
- var h:longint;
- begin
- h:=x mod maxn;
- while (f[h]<>) and (f[h]<>x) do
- h:=(h+) mod maxn;
- if f[h]= then exit(false) else exit(true);
- end;
- begin
- readln(n,m);
- for i:= to n do read(a[i]);
- sort(,n);
- num:=;
- for i:= to n do
- begin
- if find(a[i]) then continue;
- inc(num);
- insert(a[i]*m);
- end;
- writeln(num);
- end.
CODEVS1533 互斥的数(哈希表)的更多相关文章
- Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题
Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...
- 查找->动态查找表->哈希表
文字描述 哈希表定义 在前面讨论的各种查找算法中,都是建立在“比较”的基础上.记录的关键字和记录在结构中的相对位置不存在确定的关系,查找的效率依赖于查找过程中所进行的比较次数.而理想的情况是希望不经过 ...
- 167. 两数之和 II - 输入有序数组 + 哈希表 + 双指针
167. 两数之和 II - 输入有序数组 LeetCode_167 题目描述 方法一:暴力法(使用哈希表) class Solution { public int[] twoSum(int[] nu ...
- leetcode 刷题(数组篇)1题 两数之和(哈希表)
题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元 ...
- Java 哈希表运用-LeetCode 1 Two Sum
Given an array of integers, find two numbers such that they add up to a specific target number. The ...
- python数据结构与算法——哈希表
哈希表 学习笔记 参考翻译自:<复杂性思考> 及对应的online版本:http://greenteapress.com/complexity/html/thinkcomplexity00 ...
- hdu acm 1425 sort(哈希表思想)
sort Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- 深入理解PHP内核(六)哈希表以及PHP的哈希表实现
原文链接:http://www.orlion.ga/241/ 一.哈希表(HashTable) 大部分动态语言的实现中都使用了哈希表,哈希表是一种通过哈希函数,将特定的键映射到特定值得一种数据 结构, ...
- noip模拟赛 好元素 哈希表的第一题
这是一道关于 题2好元素 2s [问题描述] 小A一直认为,如果在一个由N个整数组成的数列{An}中,存在以下情况: Am+An+Ap = Ai (1 <= m, n, p < i < ...
随机推荐
- Git从远程分支创建本地分支
git fetch origin master:temp 这句命令的意思是:将远程origin仓库的master分支下载到本地,并新建一个分支temp.
- 一些Shell命令
lsof -nP -itcp:8080 查看本机8080端口在被什么应用占用,可以查看此应用对应的pid. netstat -ant|grep 8081 查看本机8081端口的使用情况. telnet ...
- node.js 对接公众平台
http://www.tfan.org/wp-content/uploads/使用-Nodejs-和-MongoDB-开发高性能微信公众平台应用.pdf
- 转载:完全卸载oracle11g步骤
完全卸载oracle11g步骤: 1. 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务. 2. 开始->程序->Oracle - OraHo ...
- bzoj 2428: [HAOI2006]均分数据
#include<cstdio> #include<iostream> #include<cstdlib> #include<ctime> #inclu ...
- 一个高在线(可以超过1024)多线程的socket echo server(pthreads 和 libevent扩展)
研究了3周吧,本来打算用pthreads+event扩展的,结果event扩展太原始了,太多函数了,实在不知道怎么在外部随时发送数据给客户端,所以改用libevent, 改用libevent之后花了2 ...
- php解压zip文件
<?php header("Content-type:text/html;charset=utf-8"); function get_zip_originalsize($fi ...
- 戴文的Linux内核专题:03驱动程序
转自Linux中国 驱动程序是使内核能够沟通和操作硬件或协议(规则和标准)的小程序.没有驱动程序,内核不知道如何与硬件沟通或者处理协议(内核实际上先发送指令给BIOS,然后BIOS传给硬件). Lin ...
- CCNA 6.5
no sh (no shutdown : start the interface) router rspf 1 network x.x.x.x x.x.x.x area 0 int (interf ...
- C# WinForm程序向datagridview里添加数据
在C#开发的winform程序中,datagridview是一个经常使用到的控件.它可以以类似excel表格的形式规范的展示或操作数据,我也经常使用这个控件.使用这个控件首先要掌握的就是如何向其中插入 ...