一看题意就是二分匹配问题,建边是双向的,两个集合都是n个点

这题的图很特殊,每个点都要与三个点相连,在纸上画了六个点的图就感觉此图最大匹配肯定是六,除以2就是原图的匹配了,就感觉这样的图肯定会达到满匹配

一看数据5000个点,就用链表写了,还是超时,本来想在网上找份解题报告,看一下怎么优化的,却搜不到

就用自己的猜想,直接输出n/2,结果A了,,这尼玛什么题啊,,,

#include<stdio.h>
int main()
{
int t,n,i,a,b;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=1;i<=n/2*3;i++)
scanf("%d%d",&a,&b);
printf("%d\n",n/2);
}
return 0;
}
/*
#include<stdio.h>
#include<string.h>
#define N 5001
int n,map[N][N],match[N],vis[N];
struct edge
{
int ed;
edge *next;
}*E[N];
void addedge(int x,int y)
{
edge *p=new edge;
p->ed=y;
p->next=E[x];
E[x]=p;
}
int find(int x)
{
int i;
for(edge *p=E[x];p;p=p->next)
{
i=p->ed;
if(vis[i]==0)
{
vis[i]=1;
if(match[i]==-1||find(match[i])==1)
{
match[i]=x;
return 1;
}
}
}
return 0;
}
int main()
{
int i,t,sum,x,y;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
memset(E,NULL,sizeof(E));
for(i=1;i<=n/2*3;i++)
{
scanf("%d%d",&x,&y);
addedge(x,y);
addedge(y,x);
}
memset(match,-1,sizeof(match));
sum=0;
for(i=1;i<=n;i++)
{
memset(vis,0,sizeof(vis));
sum+=find(i);
}
printf("%d\n",sum/2);
}
return 0;
}
*/

hdu 1845的更多相关文章

  1. HDU 1845 Jimmy’s Assignment(二分匹配)

    Jimmy’s Assignment Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Other ...

  2. HDU - 1845 Jimmy’s Assignment (二分匹配)

    Description Jimmy is studying Advanced Graph Algorithms at his university. His most recent assignmen ...

  3. POJ 1845 (约数和+二分等比数列求和)

    题目链接: http://poj.org/problem?id=1845 题目大意:A^B的所有约数和,mod 9901. 解题思路: ①整数唯一分解定理: 一个整数A一定能被分成:A=(P1^K1) ...

  4. 【转载】图论 500题——主要为hdu/poj/zoj

    转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  5. hdu图论题目分类

    =============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...

  6. HDU图论题单

    =============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...

  7. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  8. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  9. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

随机推荐

  1. MSSERVER创建链接服务器

    exec sp_addlinkedserver 'DB_RASS','','SQLOLEDB','127.0.0.1' ' exec sp_serveroption 'DB_RASS','rpc ou ...

  2. C++中new和malloc的区别

    原文:http://blog.163.com/ji_wei8888/blog/static/4868044620117361747282/ 1.new 是c++中的操作符,malloc是c 中的一个函 ...

  3. ASP.NET MVC 下拉框的传值的两种方式

    以前使用WebForm变成时,下拉框传值只需直接在后台绑定代码就可以了.现在我们来看看在MVC中DropDownList是如果和接受从Controller传过来的值的. 第一种:使用DropDownL ...

  4. linux freetds操作mssql

    1.安装freetds wget http://mirrors.ibiblio.org/freetds/stable/freetds-stable.tgz tar xvzf freetds-stabl ...

  5. 中值排序的java实现

    public class MidSort { public static void main(String[] args){ ,,,,,,,,}; midSort(arr,,); for(int i: ...

  6. jQuery学习总结(一)

    jQuery当中独有的对象:jQuery对象: jQuery对象的缩写形式“$”:所以在使用时,我们都是用$来代替jQuery. 所以我们在页面元素选择或执行功能函数的时候可以这么写:$(functi ...

  7. 125 Valid Palindrome

    public class Solution { public boolean isPalindrome(String s) { if(s==null) return false; s=s.toLowe ...

  8. C#之Action

    Action<T> 委托 class Program { static void Main(string[] args) { MyDelegate<string>(MyFunc ...

  9. EL表达式的操作符

    表9.1 EL表达式的操作符 操作符 功能和作用 . 访问一个bean属性或者Map entry [] 访问一个数组或者链表元素 () 对子表达式分组,用来改变赋值顺序 ? : 条件语句,比如:条件? ...

  10. 使用Js脚本 修改控制IE的注册表相关设置(activex等)

    使用Js脚本 修改控制IE的注册表相关设置(activex等) 分类: PHP2012-12-05 18:51 2035人阅读 评论(2) 收藏 举报 脚本写法: <SCRIPT LANGUAG ...