握手(bestcode#42)

Shaking hands

问题描述

今天是Gorwin的生日,所以她举办了一个派对并邀请她的朋友来参加。她将邀请n个朋友,为了方便,Gorwin把他们从1到n标号。他们之中有一些人已经相互认识,有一些人不认识对方。相互认识的朋友见面之后会握手然后喝一杯香槟。Gorwin想要知道要准备多少杯香槟。你能帮助她吗?

输入描述

多组测试数据(大概30组),每组数据的第一行有一个整数n表示Gorwin要邀请n个朋友来参加她的派对。
接下来n行会给出一个n*n的矩阵,如果a[i][j]是1,那么朋友i和朋友j是相互认识的,否则他们不认识。
请处理到文件末尾。
[参数约定]
所有输入均为整数。
1<=n<=30
0<=a[i][j]<=1
a[i][i]=0;
a[i][j]=a[j][i] for i!=j

输出描述

对于每一个数据,在一行中输出一个整数代表Gorwin总共要准备多少香槟。

输入样例

2
0 0
0 0
3
0 0 1
0 0 0
1 0 0

输出样例

4
8

Hint

对于第二个数据,Gorwin会和她所有的朋友握手,然后喝三杯香槟,她的三个朋友也各喝一杯。朋友1和朋友3相互认识,他们握手,然后各自喝一杯。这样总共要3+3+2=8杯香槟。
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int T,n,i,j;
 5     int a[31][31];
 6     while(~scanf("%d",&n))
 7     {
 8         int count=0;
 9         for(i=0;i<n;i++)
10             for(j=0;j<n;j++)
11                 scanf("%d",&a[i][j]);
12     for(i=0;i<n;i++)
13         for(j=0;j<i;j++)
14             if(a[i][j]==1)
15                 count++;
16     printf("%d\n",(count+n)*2);
17
18     }
19 }
时间: 2024-08-27 13:15:50

握手(bestcode#42)的相关文章

BIO,NIO区别

1.BIO编程     1.1.传统的BIO编程     网络编程的基本模型是C/S模型,即两个进程间的通信. 服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信. 传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口:Socket负责发起连接操作.连接成功后,双方通过输入和输出流进行同步阻塞式通信. 简单的描述一下BIO的服务端通信模型:采用BIO通信模型的服务端,通常由一个独

【BestCoder】【Round#42】

模拟+链表+DP Orz AK爷faebdc A Growin要跟全部的n个人握手共2n杯香槟,再加上每对关系的两杯香槟,直接统计邻接矩阵中1的个数,再加2n就是answer 1 //BestCoder 42 A 2 #include<vector> 3 #include<cstdio> 4 #include<cstring> 5 #include<cstdlib> 6 #include<iostream> 7 #include<algor

抓包工具-Wireshark(详细介绍与TCP三次握手数据分析)

功能使用的详细介绍 wireshark(官方下载网站: http://www.wireshark.org/),是用来获取网络数据封包,可以截取各种网络封包,显示网络封包的详细信息,包括http,TCP,UDP,等网络协议包.注:wireshark只能查看封包,而不能修改封包的内容,或者发送封包. 一.开始界面 开始界面,如图1所示: 图1(wireshark开始界面) 点击Caputre->Interfaces,出现图2所示对话框,选择需要捕获网络包的网卡,点击start按钮开始抓包. 注:如果

tcpdump 之 arp请求,tcp的3次握手,4次断开,详解

一:环境说明: 1,my_recoder.tcpdump是我在服务器端抓包的文件 2,在这里,只显示与11.11.11.6主机相关的所有信息: 3,网络模型:同一个局域网 4,11.11.11.6 是客户机 5,11.11.11.8 是服务器 6,11.11.11.11 是网关 二:tcpdump抓包信息 [email protected]:~# tcpdump -r my_recoder.tcpdump -n  host 11.11.11.6  17:11:09.373704 ARP, Req

TCP三次握手及数据传输分析

TCP包结构 一个TCP包结构如下: 一个TCP包主要由TCP包头和数据部分组成,包头固定部分为20字节,选项和数据部分根据实际情况设置为4N(N可以为0)字节. 1.16bit源端口和目的端口号,它可以确认数据的传输方向(暂不考虑更底层的包) 2.32bit序号,它是为TCP包中数据部分进行编号的部分.假设要发送的数据有100M,由于受MSS( Maximum Segment Size 最大报文段长度)限制,一个TCP包是不可能传输完这100M的数据,于是需要将数据拆分,为了确保拆分传输后的数

TCP三次握手原理与SYN攻击

本文内容包括以下几点 1.TCP三次握手四次挥手解析 2.迭代型服务器程序编写,并给出客户端,结合这一模式详细介绍Berkeley套接字的使用 3.介绍SYN攻击的原理 TCP连接建立,传输数据,连接释放上层图解. 结合此图来说明SYN攻击.SYN攻击发生在TCP连接的第二个阶段,服务器确认客户端同步信息(SYN),用32位确认号(ACK)确认SYN信息. 可以提出这样一个假设,客户端(client)给服务器发syn之后就不存在了,那么第二次握手失败,服务器会根据预先设置的超时时间继续做第二次握

1、三次握手原则 2、什么是正则表达式以及作用 3、匹配身份证和电话号码的正则表达式 4、什么是运动

1.三次握手原则 Http协议三次握手过程 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknow

Linux Socket过程详细解释(包括三次握手建立连接,四次握手断开连接)

我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web 服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型 有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: 1.网络中进程之间如何通信? 2.Socket是什么? 3.socket的基本操作 3.1.socket()函数 3.2.bind()函数 3.3.listen().

Socket过程详细解释(包括三次握手建立连接,四次握手断开连接)

本文的主要内容如下: 1.网络中进程之间如何通信? 2.Socket是什么? 3.socket的基本操作 3.1.socket()函数 3.2.bind()函数 3.3.listen().connect()函数 3.4.accept()函数 3.5.read().write()函数等 3.6.close()函数 4.socket中TCP的三次握手建立连接详解 5.socket中TCP的四次握手释放连接详解 6.一个例子(实践一下) 7.留下一个问题,欢迎大家回帖回答!!! 1.网络中进程之间如何