POJ3697
/*
Memory Time
7096K 2641MS
*/ #include <iostream>
#include <string> using namespace std; #define HASHLEN 1000117
#define DEMNUM 1000001 int hashTable[HASHLEN];
int factor = ; int pcs[]; struct Node {
int a;
int b;
int next;
};
Node dam_node[DEMNUM]; int myq[DEMNUM]; inline int is_demaged(int a, int b) { int idx = hashTable[(a * factor + b) % HASHLEN];
while (idx > ) {
if (dam_node[idx].a == a && dam_node[idx].b == b) {
return ;
}
idx = dam_node[idx].next;
}
return ;
} int main() {
int case_i = ;
int pc_num = , dam_num = , i, j, num, pca, pcb, head, tail, hVal, idx, flag;
while(scanf("%d %d", &pc_num, &dam_num) && !(pc_num == && dam_num == )) { memset(hashTable, 0x00, sizeof(hashTable));
memset(pcs, 0x00, sizeof(pcs));
for (i = ; i <= dam_num; i++) {
//input data
scanf("%d %d", &pca, &pcb);
if (pca < pcb) {
dam_node[i].a = pca;
dam_node[i].b = pcb;
hVal = (pca * factor + pcb) % HASHLEN;
} else {
dam_node[i].a = pcb;
dam_node[i].b = pca;
hVal = (pcb * factor + pca) % HASHLEN;
}
dam_node[i].next = ; //create hash table
idx = hashTable[hVal];
if (idx > ) {
dam_node[i].next = idx;
hashTable[hVal] = i;
} else {
hashTable[hVal] = i;
}
} num = ;
head = ;
tail = ;
for (i = ; i <= pc_num; i++) {
if (!is_demaged(,i)) {
myq[(tail++) % DEMNUM] = i;
num++;
pcs[i]=;
}
}
while(head!=tail) {
int v = myq[(head++) % DEMNUM];
for (j = ; j <= pc_num; j++) {
if (pcs[j]== || v == j) continue;
if (v < j) {
flag = is_demaged(v,j);
} else {
flag = is_demaged(j,v);
}
if (!flag) {
pcs[j]=;
myq[(tail++) % DEMNUM] = j;
num++;
}
}
}
printf("Case %d: %d\n", ++case_i, num);
}
}
POJ3697的更多相关文章
- POJ3697+BFS+hash存边
/* 疾速优化+hash存边 题意:给定一个包含N(1 ≤ N ≤ 10,000)个顶点的无向完全图,图中的顶点从1到N依次标号.从这个图中去掉M(0 ≤ M ≤ 1,000,000)条边,求最后与顶 ...
- POJ3697【BFS】
题意: n个点的完全图,删掉m条边以后,求与1联通的点的个数. 思路: 直接判断 遍历图,n(n+1)/2=5e7 复杂度n^2......,哦,这样也行... //#include<bits/ ...
随机推荐
- JavaSE_01_Exception类
1.1 异常概念 指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象.Java ...
- 【DM642学习笔记二】dsp基础实验:发光二级管的显示 led.c
1,OSDFPGA配置一个专用的8位寄存器控制指示灯亮灭,访问地址为90080017h,由电路图可知低电平点亮. 2,程序运行时,可直接editmemory.即修改90080017h地址的值(可在Ed ...
- Python - 集合与元素之数据类型和变量总结
变量 变量的作用:保存状态(程序的运行本质是一系列的变化,变量的目的就是用来保存状态,变量值的变化就构成了程序运行的不同结果.) 例如:cs枪战中,一个人的生命可以表示为life = True 表示存 ...
- Spring.之.报错:Caused by: java.lang.IllegalArgumentException: No Spring Session store is configured: set the 'spring.session.store-type' property
Spring.之.报错 No Spring Session store is configured springboot在启动的时候报如下错误: Error starting ApplicationC ...
- Hibernate-实体-对象状态-一级缓存-事务-查询
一 hibernate中的实体规则 1.1 实体类创建的注意事项 持久化类提供无参数构造 --在调用instance()方法时默认调用空参构造 成员变量私有,提供共有get/set方法 ...
- webServices学习四(---WebService监听工具)
之前我们使用过HttpWatch获取的HTTP的调用过程,并获得了HTTP的请求头及其他请求的详细信息. 既然WebServie也是通过HTTP进行通信的,能不使用HTTPWatch来获取它的请求过程 ...
- 【JOB】Oracle中JOB的创建方法以及一个细节的探究
在Oracle中可以使用JOB来实现一些任务的自动化执行,类似于UNIX操作系统crontab命令的功能.简单演示一下,供参考. 1.创建表T,包含一个X字段,定义为日期类型,方便后面的定时任务测试. ...
- iOS Bezier曲线
https://www.jianshu.com/p/2316f0d9db65 1. Bezier曲线 相关软件:PaintCode:可以直接画图,软件根据图像生产Bezier曲线 相关概念:UIBez ...
- SpringMVC + Mybatis + Shiro + ehcache时缓存管理器报错。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shiroFilter' ...
- wpf样式与行为