cogs 10. 信号无错传输
10. 信号无错传输
★★☆ 输入文件:dlj.in 输出文件:dlj.out 简单对比
时间限制:1 s 内存限制:128 MB
第一行,一个整数n,表示该编码规则共有n种信号(2<=n<=100)
下面有n行,每行有n个数字。第p行第q列的数字表示信号p与信号q之间是否可能混淆。数字为1表示有可能混淆,0表示不会混淆。
第一行,一个整数a,表示精简后的编码规则中有a个信号。
第二行,一个整数b,表示最佳精简方案有b种。
第3--b+2行,每行b个整数,表示一种精简方案。多种方案输出时,输出顺序按信号编号由小到大字典序输出。
0 1 1 1 0 0
1 0 0 1 0 0
1 0 0 1 0 0
1 1 1 0 1 1
0 0 0 1 0 1
0 0 0 1 1 0
【输出文件】
2
2 3 5
2 3 6
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,ans,sum,map[][],v[][],f[][];
int use[];
bool judge(int x){
for(int i=;i<=x;i++) //要保证字典序,不出现重复。
if(map[x][i]&&use[i])
return false;
return true;
}
void dfs(int t,int now){ //搜索到第t个点,当前留下的点的个数为now个。
if(ans-now>n-t+) return ;
if(t>n){
if(now>ans) sum=;
memcpy(v[++sum],use,sizeof(use)); //记录选点的情况。
ans=now;
return ;
}
if(judge(t)&&!use[t]){ //判断一个点是否能被留下。
use[t]=; //如果与这个点相连的点中没有被选中的并且这个点没有入选。
dfs(t+,now+);
use[t]=;
}
dfs(t+,now); //不能被留下,继续找下一个点。
}
int main(){
//freopen("dlj.in","r",stdin);
//freopen("dlj.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++){
int falg=;
for(int j=;j<=n;j++){
scanf("%d",&map[i][j]);
if(map[i][j]) falg=;
}
if(falg==){
use[i]=; //use记录点是否被选中留下。
ans++; //ans记录留下的点的个数。
}
}
dfs(,ans); //从第一个点开始搜索,当前留下的点的个数为ans个。
cout<<ans<<endl<<sum<<endl;
for(int i=;i<=sum;i++){
for(int j=;j<=n;j++)
if(v[i][j])
printf("%d ",j);
cout<<endl;
}
}
cogs 10. 信号无错传输的更多相关文章
- 【WCF--初入江湖】10 序列化和传输大型数据流
10 序列化和传输大型数据流 1.前言 理解WCF的序列化形式 掌握DataContractSerializer序列化对象 比较性能 比较xmlSerializer序列化对象 大数据量传输设置 修 ...
- qt多线程信号槽传输方式
//简单介绍一下QT信号与槽的连接方式: //Qt::AutoConnection表示系统自动选择相应的连接方式,如果信号与槽在同一线程,就采用Qt::DirectConnection, //如 ...
- APUE学习笔记——10信号——信号接口函数 signal 和 sigaction
signal函数 signal函数是早起Unix系统的信号接口,早期系统中提供不可靠的信号机制.在后来的分支中,部分系统使用原来的不可靠机制定义signal函数,如 Solaris 10 .而 ...
- APUE学习笔记——10 信号
信号的基本概念 信号是软件中断,信号提供了解决异步时间的方法. 每一中信号都有一个名字,信号名以SIG开头. 产生信号的几种方式 很多条件可以产生信号: 终端交互:用户 ...
- UNIX环境高级编程--10. 信号
第十章 信号 信号是软中断,提供了一种处理异步事件的方法.例如,终端用户键入终端键,会通过信号机制停止一个进程,或及早终止管道中的下一个程序. 每个信号都有一个名字,SIG开 ...
- 高级UNIX环境编程10 信号
信号是软件中断,提供一种处理异步事件的方法 <signal.h> sigaction()
- 《连载 | 物联网框架ServerSuperIO教程》- 10.持续传输大块数据流的两种方式(如:文件)
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platform)
catalog . 引言 . Windows 2000网络结构和OSI模型 . NDIS驱动 . NDIS微端口驱动编程实例 . NDIS中间层驱动编程实例 . NDIS协议层驱动编程实例 . TDI ...
- RFID 基础/分类/编码/调制/传输
不同频段的RFID产品会有不同的特性,本文详细介绍了无源的感应器在不同工作频率产品的特性以及主要的应用. 目前定义RFID产品的工作频率有低频.高频和甚高频的频率范围内的符合不同标准的不同的产品,而且 ...
随机推荐
- hibernate初步2
Hibernate级联设计 数据库表之间的关系(主要关系有一对多.一对一.多对多)主要是从如下三个方面体现出来: 1.表体设计 2.实体类的设计 3.配置文件 以下是一些重要级联设计参数属性介绍: c ...
- DCloud-MUI:utils
ylbtech-DCloud-MUI:utils 1.返回顶部 1.init mui框架将很多功能配置都集中在mui.init方法中,要使用某项功能,只需要在mui.init方法中完成对应参数配置即可 ...
- 逻辑回归 C++
#include <iostream>#include <string>#include <fstream>#include <sstream>#inc ...
- for 循环的中的i
for循环中的i,如果倒过来判断从某数一直到0,一定不能用unsigned int类型的i,因为unsigned int不可能小于0,当i=0后,i--将达到最大的unsigned int,依旧> ...
- BZOJ 1037 生日聚会 DP
[ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她 ...
- Jsp页面报错状态码含义
原来,全部在HttpServletResponse接口的字段里 状态码 (),表示一个请求已经被接受处理,但还没有完成. 状态码 (),表明HTTP服务器从一个服务器收到了一个无效的响应,当其作为一 ...
- Node.js文件系统Api总结
//公共引用 var fs = require('fs'), path = require('path'); 1.读取文件readFile函数 //readFile(filename,[options ...
- SQL SERVER 2000 如何提高大数据筛选GROUP BY 的效率
数据库有83W条记录,本想计算20180101之后的每天赔付情况,故写了以下SQL语句: SELECT 起保时间,sum(赔付金额) as 日赔付 FROM maindata WHERE 起保时间&g ...
- 《java数据结构与算法》系列之“简单排序"-冒泡,选择,插入
好几天又没写,因为这几天很闲,平时忙的时候自己再累都不会睡着,但是呢这没事了,照理说应该是不瞌睡了,结果还睡着了. 所以说,人很贱.也验证了一句话,没有目标的人其实最无聊.人一定要有自己的工作,这工作 ...
- js 如何给标签增加属性
<html> <head> <meta charset="UTF-8"> <title></title> </he ...