栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1691 Painting A Board

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1691 Painting A Board

#include<iostream>using namespace std;int n;struct e{    int x1,y1,x2,y2,c;};e a[16];struct ee{    int data;    ee *next;};ee edge[16];int ans;int d[16];int v[16];void solve(int num,int value,int color){    int i,j,k;    if(value>ans) return;    if(num==n)    {        ans=value;        return;    }    for(i=1;i<=n;i++)    {        if(d[i]==0&&v[i]==0)        { v[i]=1; ee *p=edge[i].next; while(p){     d[p->data]--;     p=p->next; } if(color!=a[i].c) solve(num+1,value+1,a[i].c); else solve(num+1,value,color); p=edge[i].next; while(p) {     d[p->data]++;     p=p->next; } v[i]=0;        }    }}void build(){    int i,j,k;    for(i=1;i<=n;i++)    {        edge[i].data=i;        edge[i].next=0;    }    for(i=1;i<=n;i++)        for(j=1;j<=n;j++)        { if(a[j].x1==a[i].x2&&((a[i].y1>=a[j].y1&&a[i].y1<a[j].y2)||(a[j].y1>=a[i].y1&&a[j].y1<a[i].y2))) {     ee *p=new ee;     p->data=j;     p->next=edge[i].next;     edge[i].next=p;     d[j]++; }        }}void read(){    int i,j,k;    int cas;    cin>>cas;    while(cas--)    {        memset(d,0,sizeof(d));        memset(v,0,sizeof(v));        cin>>n;        ans=n+1;        for(i=1;i<=n;i++) cin>>a[i].x1>>a[i].y1>>a[i].x2>>a[i].y2>>a[i].c;        build();        solve(0,0,0);        cout<<ans<<endl;    }}int main(){    read();    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376550.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号