首页 > Web开发 > 详细

[Jsoi2015] 种花

时间:2019-11-13 09:14:13      阅读:94      评论:0      收藏:0      [点我收藏+]

 

题面:
技术分享图片

刚看到这题以为是个4分图染色,求染色数,想着是个神奇的什么鬼算法???

觉得应该是个数论

然后转眼看了看这及其之水的数据。。。。

技术分享图片

DFS我来了qwq

思路很简单,枚举每个点的每种颜色,若四种颜色还有没染的就染上,

染完回溯,ans++,然后枚举下一种情况,

然后这题就结束了。

技术分享图片
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<list>
 5 #include<map>
 6 #include<queue>
 7 #include<set>
 8 #include<stack>
 9 #include<cstring>
10 #include<vector>
11 
12 using namespace std;
13 
14 inline int read()
15 {
16     int x=0,f=1;
17     char ch=getchar();
18     while(ch<0||ch>9)
19     {
20         if(ch==-)
21             f=-1;
22         ch=getchar();
23     }
24     while(ch>=0&&ch<=9)
25     {
26         x=(x<<1)+(x<<3)+(ch^48);//x=x*10+ch-‘0‘;
27         ch=getchar();
28     }
29     return x*f;
30 }
31 
32 inline void print(int x)
33 {
34     if(x<0) 
35     x=-x,putchar(-);
36     if(x>9) 
37     print(x/10);
38     putchar(x%10+0);
39 }
40 
41 bool adj[11][11];
42 int n,m,ans,col[11];
43 
44 bool can_color(int x,int color)
45 {
46     for(int i=1;i<=n;i++)
47     {
48         if(i==x)
49         continue;
50         if(!adj[i][x])
51         continue;
52         if(col[i]==color)
53         return false;
54     }
55     return true;
56 }
57 
58 void dfs(int x)
59 {
60     if(x>n)
61     {
62         ans++;
63         return;
64     }
65     for(int i=1;i<=4;i++)
66     {
67         if(can_color(x,i))
68         {
69             col[x]=i;
70             dfs(x+1);
71             col[x]=0;
72         }
73     }
74 }
75 
76 int main()
77 {
78     //freopen("colour.in","r",stdin);
79     //freopen("colour.out","w",stdout);
80 
81     n=read();
82     m=read();
83     for(int i=1;i<=m;i++)
84     {
85         int x=read(),y=read();
86         adj[x][y]=adj[y][x]=1;
87     }
88     dfs(1);
89     print(ans);
90     
91     //fclose(stdin);
92     //fclose(stdout);
93     return 0;
94 }
by YLCH

 

[Jsoi2015] 种花

原文:https://www.cnblogs.com/YLCHANGE/p/11846550.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!