51nod 算法马拉松18 A 染色问题
染色问题
第一行一个整数T,表示数据组数
接下来T行每行一个整数n,表示完全图的点数
输出由T个部分组成
每个部分的第一行一个整数n,表示完全图的点数
第二行表示构造结果
如果无解输出No solution
否则输出n*(n-1)/2条边的起点、终点和颜色
2
4
3
4
No solution
3
1 2 3 2 3 1 3 1 2
一开始看这个题又是环又是图又是排列组合的还以为很麻烦,不过读完题发现其实没有那么复杂。题目的样例也完全不用纠结,输入3可以像样例那样输出,也完全可以按自己想的颜色输出(我的程序跑3的结果就是1 2 1 1 3 2 2 3 3,但是可以AC)。然后再找一下规律,就是两个点间染一个颜色,然后以这两个点为一个端点的线都不能再染这个颜色了,这样下来就是自己找规律看如何填颜色了。如果输入的是偶数那么无论如何都做不到这一点,所以偶数就直接输出"No solution"就好了,奇数的话再找下规律,我是先顺着填的颜色,最后填完发现颜色数量正好再观察下我画的表的规律,写出了程序。
下面是我以输入7为例填的表格,两边表示两个点,里面的代号是这两个点间边的颜色
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| 1 | \ | 1 | 2 | 3 | 4 | 5 | 6 |
| 2 | 1 | \ | 3 | 4 | 5 | 6 | 7 |
| 3 | 2 | 3 | \ | 5 | 6 | 7 | 1 |
| 4 | 3 | 4 | 5 | \ | 7 | 1 | 2 |
| 5 | 4 | 5 | 6 | 7 | \ | 2 | 3 |
| 6 | 5 | 6 | 7 | 1 | 2 | \ | 4 |
| 7 | 6 | 7 | 1 | 2 | 3 | 4 | \ |
填颜色的方法应该不止一种,找出来一种就好了,然后我根据我的表的规律写的代码,下面是AC代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[]; int main()
{
int T;
int n;
int i,j;
int k,t;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
cout<<n<<endl;
if(n%==)
cout<<"No solution"<<endl;
else
{
t=;
for(i=;i<n-;i++)
{
k=t;
for(j=i+;j<=n;j++)
{
cout<<i<<" "<<j<<" "<<k<<" ";
k=(k+)%n;
if(k==)
k=n;
}
t=(t+)%n;
if(t==)
t=n;
}
cout<<n-<<" "<<n<<" "<<k<<endl;
}
}
return ;
}
51nod 算法马拉松18 A 染色问题的更多相关文章
- 51nod 算法马拉松18 B 非010串 矩阵快速幂
非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串. 求长度为n的非010串的个数.(对1e9+7取模) ...
- 51nod 算法马拉松 34 Problem D 区间求和2 (FFT加速卷积)
题目链接 51nod 算法马拉松 34 Problem D 在这个题中$2$这个质数比较特殊,所以我们先特判$2$的情况,然后仅考虑大于等于$3$的奇数即可. 首先考虑任意一个点对$(i, j)$ ...
- 51NOD 算法马拉松8
题目戳这里:51NOD算法马拉松8 某天晚上kpm在玩OSU!之余让我看一下B题...然后我就被坑进了51Nod... A.还是01串 水题..怎么乱写应该都可以.记个前缀和然后枚举就行了.时间复杂度 ...
- 51Nod 算法马拉松21(迎新年)
这次打算法马拉松是在星期五的晚上,发挥还算正常(废话,剩下的题都不会= =). 讲讲比赛经过吧. 8:00准时发题,拿到之后第一时间开始读. A配对,看上去像是二分图最大权匹配,一看范围吓傻了,先跳过 ...
- 随便玩玩系列之一:SPOJ-RNG+51nod 算法马拉松17F+51nod 1034 骨牌覆盖v3
先说说前面的SPOJ-RNG吧,题意就是给n个数,x1,x2,...,xn 每次可以生成[-x1,x1]范围的浮点数,把n次这种操作生成的数之和加起来,为s,求s在[A,B]内的概率 连续形的概率 假 ...
- 51Nod 算法马拉松15 记一次悲壮而又开心的骗分比赛
OwO 故事的起源大概是zcg前天发现51Nod晚上有场马拉松,然后他就很开心的过去打了 神奇的故事就开始了: 晚上的时候我当时貌似正在写线段树?然后看见zcg一脸激动告诉我第一题有九个点直接输出B就 ...
- 51Nod 算法马拉松23 开黑记
惨啊……虽然开了半天黑,但是还是被dalao们踩了…… 第二次开黑,还是被卡在rank20了,我好菜啊……= = 写一写比赛经过吧…… 看到题之后习惯性都打开,A~D看上去似乎并没有什么思路,F应该是 ...
- 51Nod 算法马拉松22 开黑记
这是一场惨烈的开黑大战,始于全机房开黑指望刷进rank前十拿钱的壮志,终于被各路神犇怒踩成rank20,差点200点头盾不保的落魄,想起将近一年前ad和zcg等学长挤进rank10的壮举,不由得唏嘘, ...
- 51nod算法马拉松 contest7
A题 链接:http://www.51nod.com/contest/problem.html#!problemId=1417 推荐链接:http://blog.csdn.net/a837199685 ...
随机推荐
- CSharpGL(0)一个易学易用的C#版OpenGL
+BIT祝威+悄悄在此留下版了个权的信说: CSharpGL(0)一个易学易用的C#版OpenGL CSharpGL是我受到SharpGL的启发,在整理了SharpGL,GLM,SharpFont等开 ...
- 用.NET MVC实现长轮询,与jQuery.AJAX即时双向通信
两周前用长轮询做了一个Chat,并移植到了Azure,还写了篇博客http://www.cnblogs.com/indream/p/3187540.html,让大家帮忙测试. 首先感谢300位注册用户 ...
- [SDK2.2]Windows Azure Storage (15) 使用WCF服务,将本地图片上传至Azure Storage (上) 服务器端代码
<Windows Azure Platform 系列文章目录> 这几天工作上的内容,把项目文件和源代码拿出来给大家分享下. 源代码下载:Part1 Part2 Part3 我们在写WEB服 ...
- jieba中文分词的.NET版本:jieba.NET
简介 平时经常用Python写些小程序.在做文本分析相关的事情时免不了进行中文分词,于是就遇到了用Python实现的结巴中文分词.jieba使用起来非常简单,同时分词的结果也令人印象深刻,有兴趣的可以 ...
- hibernate学习笔记之四 Hibernate的增删改查
采用JUnit测试,继承TestCase import java.util.Date; import junit.framework.TestCase; import org.hibernate.Se ...
- Trace1:Default Trace
sql server trace 是一个轻量级的追踪工具,对追踪数据库的行为很有用,因此,sql server内置一个trace(default trace). 1,sql server 内置Defa ...
- Spring(二)scope、集合注入、自动装配、生命周期
原文链接:http://www.orlion.ga/189/ 一.scope bean的scope属性中常用的有两种:singleton(单例,默认)和prototype(原型,每次创建新对象) 例: ...
- v-if VS v-show
在vue实现轮播图效果 中分别用到 v-if和 v-show 下面讲讲我理解的他们的区别: v-if: 根据表达式的值的真假条件渲染元素.在切换时元素及它的数据绑定 / 组件被销毁并重建.如果元素是 ...
- 判断checkbox的checked状态(jQuery写法)
$('#checkboxInput').click(function(){ if (this.checked){ $('.questionContainer').css({ "opacity ...
- Java基本语法练习
1.编写程序,求100以内的全部素数. 实验源码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class F ...