• 2019.7.7 练习题


    A. IP 网络
    时间限制 : 5000 MS   空间限制 : 165536 KB
    评测说明 : 1000ms
    问题描述

    可以用一个网络地址和一个子网掩码描述一个子网(即连续的 IP 地址范围)。
    其中子网掩码包含 32 个二进制位,前 32-n 位为 1,后 n 位为 0,网络地址的前 32-n 位任意,后 n 位为 0(0<=n<=32) 。 所有前 32-n 位和网络地址相同的 IP 都属于此网络。  

    例如,网地址为 194.85.160.176(二进制为 11000010 01010101 10100000 10110000), 子网掩码为 255.255.255.248(二进制为 11111111 11111111 11111111 11111000),则该 子网的 IP 地址范围是 194.85.160.176~194.85.160.183。
    现在输入一些网络地址,请你求出包含所有地址的最小的网络(即包含 IP 地址最少的网络)。 

    输入格式

    第一行为一个整数 m,
    接下来的 m 行,每行一个 IP 地址,可能有多个相同的地址出现。

    输出格式
    出两行,表示包含所有输入的 IP 地址的最小网络,第一行是网络地址,第二行是子网掩码。 
    这道题是很明显的二进制了 ,但是考试时觉得输入输出特别麻烦就先看的b题

    题解:

    B.排列
    时间限制 : - MS   空间限制 : 165536 KB 
    评测说明 : 1000ms
    问题描述

    将自然数 1 到 n 任意排列,然后在排列的每两个数之间根据他们的大小关系插入“>”和“<”。 例如:对于 1..5 的一个排列:3 2 4 1 5,可得到:3 > 2 < 4 > 1 < 5,其中有两个“>”和 2 个“<” 。 现在给出自然数 n,问在自然数 1..n 的所有排列中,有多少个排列恰好有 k 个“<”。 请你解答这个问题。 

    输入格式

    包含多组数据。第一行一个整数 T,表示有 T 组数据。  
    每组数据的占一行,包含两个整数 n 和 k,它们之间用一个空格分开。 

    输出格式

    共 T 行,每组数据输出一行,每行一个整数,表示对应输入的排列数,这个数如果很大,则需要 输出 mod 1000000007 的结果。 

     
    题解:这是考试唯一a的题 废了很多时间在找规律上 结果emmmm  很久才看出来是动规 
    直接给代码  另外,long long 和初始化
    #include<bits/stdc++.h>
    using namespace std;
    long long f[1005][1005],mod=1000000007; 
    int main()
    {
    long long  t,n,k;
    cin>>t;
    for(int i=1;i<=1000;i++)
    f[i][0]=1;
    for(int i=1;i<=1000;i++)
    for(int j=1;j<=1000;j++)
    {
    f[i][j]=(f[i-1][j-1]*(i-j)+f[i-1][j]*(j+1))%mod;        
    } 
        for(int i=1;i<=t;i++)
        {
        cin>>n>>k;
        cout<<f[n][k]%mod<<endl;    
        }
    
    }
    C.可爱的猴子
    时间限制 : 10000 MS   空间限制 : 65536 KB
    问题描述

    树上有n只猴子。它们编号为 1 到n。1 号猴子用它的尾巴勾着树枝。剩下的猴子都被其他的猴子用手抓着尾巴(猴子都是头朝下尾巴朝上)。
    每只猴子的每只手可以抓住另一只猴子的尾巴。

    从0 时刻开始,每一秒都有一只猴子松开它的一只手。这会导致一些猴子掉到地上(它们在地上也能继续松开它们的手,猴子落地的时间很短可以不计)。

    你的任务是: 写一个程序,从标准输入读入猴子间抓与被抓住的关系信息,和它们放开手的顺 序,对于每一只猴子算出它落地的时间,把结果输出到标准输出。

    输入格式

    第一行有两个正整数n和m。n是猴子的数量,m是我们观察猴子的时间(单位为秒)。
    接下来n行是初始情 况的描述。第k+1 行有两个整数表示第k个猴子抓住的猴子的编号,前一个数 代表左手抓的猴子的编号,后一个数是右手抓的猴子的编号。如果读入的数为-1 则代表猴子的手是空的。
    接下来m行是对猴子观察的结果。在这m行里的第i行,有两个整数。前一个是猴子的编号,后一个是它在时刻i−1 时松开的手的编 号(1-左手,2-右手)。

    输出格式

    输出n个整数,每行一个。第i行表示第i个猴子落地的时间,如果在观察结束前猴子没有落地,那么输出-1

    题解: 用并查集

    由于并查集只能合并和查询 所以反向思考  何时牵手何时放手

    每次如果father死得更早就更改  从下往上  方可解题

     
     
     
  • 相关阅读:
    python剑指网络篇二
    使用sklean进行多分类下的二分类
    virtualenv下使用matplotlib
    谱聚类python实践
    K均值算法-python实现
    python使用hbase
    php运算符
    php常量
    php数据类型
    git,版本控制教程
  • 原文地址:https://www.cnblogs.com/cocacolalala/p/11145842.html
Copyright © 2020-2023  润新知