1. 程式人生 > >UVA1590-IP Networks

UVA1590-IP Networks

這個題沒什麼坑,不過還是寫了很長時間,因為交了一遍freopen還有全部相似的問題。

#include <bits/stdc++.h>
#include<cstring>
using namespace std;
int main()
{
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    int T;
    while(scanf("%d",&T)==1){
        int i,j,k,s,t;
        int a[T][32];
        int b[32],c[32];
        int m;
        for(i=0;i<T;i++){//T ¸öIP
            for(j=0;j<4;j++){ //4¸öÊý×Ö
                scanf("%d",&m);
                getchar();
                for(k=0,t=7;k<8;k++,t--){
                    a[i][j*8+k]=(m>>t)%2;
                }
            }
        }
//        for(i=0;i<T;i++){
//            for(j=0;j<32;j++)
//                printf("%d",a[i][j]);
//            printf("\n");
//        }
        int mid=-1;
        for(i=0;i<32;i++){
            for(j=1;j<T;j++){
                if(a[0][i]!=a[j][i]){
                    mid=i;
                    goto endf;
                }
            }
        }endf:;
        if(mid==-1) mid=32;
        for(i=0;i<mid;i++){
            b[i]=a[0][i];
            c[i]=1;
        }
        for(i=mid;i<32;i++){
            b[i]=0;
            c[i]=0;
        }
        int q[4],w[4];
        memset(q,0,sizeof(q));
        memset(w,0,sizeof(w));
        for(i=0;i<4;i++){
            for(j=0;j<8;j++){
                q[i]=q[i]*2+b[8*i+j];
                w[i]=w[i]*2+c[8*i+j];
            }
        }
        printf("%d.%d.%d.%d\n",q[0],q[1],q[2],q[3]);
        printf("%d.%d.%d.%d\n",w[0],w[1],w[2],w[3]);
    }
    return 0;
}


相關推薦

UVA1590-IP Networks

這個題沒什麼坑,不過還是寫了很長時間,因為交了一遍freopen還有全部相似的問題。 #include <bits/stdc++.h> #include<cstring> us

Uva1590——IP networks

#include <iostream> #include <cstdio> #include <algorithm> using namespace std; s

演算法競賽入門經典(第2版)習題4-5 IP網路 IP Networks UVa1590

這道題的邏輯很簡單,讀入所有的ip地址,確認總共32位二進位制數中最左一個不同是在哪裡出現的,然後按規則輸出網路地址與子網掩碼即可。 可上傳後我發現它就是wa...還是wa...總是wa...... 然後我在網上找到了例程,設想出了很多測試資料,用fc拍來拍去,總是報告“找

UVALive3520 UVa1590 POJ2799 IP Networks【進位制+位運算】

Time Limit: 1000MSMemory Limit: 65536KTotal Submissions: 2392Accepted: 919DescriptionAlex is administrator of IP networks. His clients hav

uva 1590 - IP NetworksIP地址)

32位 http sub sample com lock 就是 subst top 習題4-5 IP網絡(IP Networks, ACM/ICPC NEERC 2005, UVa1590) 可以用一個網絡地址和一個子網掩碼描述一個子網(即連續的IP地址範圍)。其中子網

1590 IP Networks java

udebug上的測試都通過了,提交uva,wrong answer,不知道哪錯了 package com.uva; import java.math.BigInteger; import java.util.Scanner; public class IpNetworks { pub

UVa 1590 IP NetworksIP 網路)

Alex is administrator of IP networks. His clients have a bunch of individual IP addresses and he decided to group all those IP addresses into the smalle

UVA 1590 IP Networks JAVA

works esc char ext 題意 har pen -s 什麽 題意:輸入m代表接下來的數據個數,計算接下來輸入數據的網絡掩碼,和最小網絡地址。思路:①子網掩碼:先將數據轉為二進制,判斷從哪一位開始有數據不一樣,記下下標index,則子網掩碼是index的前面是1,

1590 IP Networks

Alex is administrator of IP networks. His clients have a bunch of individual IP addresses and he decided to group all those IP addresses into the smalles

Uva 1590 IP Networks

題目:略(不會把PDF格式的題目直接轉過來,希望有大神可以指教一下) 心得: 1、讀題用了很久又到網上搜索了子網掩碼的百科才搞懂題目,唯一的思路是隻要找出給出的網路地址中二進位制位第一位不同的即可,難點是在實現的過程 2、我是把十進位制 -> 二進位制 -> 通

poj2799 IP Networks

IP和DNS都是由32位組成的,每8位決定一個數字0-255,IP地址的數量為2^n,n為IP的二進位制後n位,前32-n對於一個網路裡的ip都是一樣的,DNS直接決定了一個網路裡的ip的數量(前32-n位為1,後n位為0)。 有這些知識儲備以後,得出最長的公共串即可,只需

優雅競賽之 UVa 1590 IP Networks

IP網路 UVa 1590 來自 演算法入門 競賽經典 第二版 第四章 習題4-5 最初以為該題比較簡單,真正開始寫才遇到許多問題。 問題: 位操作不直觀,思考了一會 右移32位與沒有位移相同 優雅之處: 簡單易懂的位操作 簡單化

小紫書 4-5 UVA 1590 IP Networks

題解: 程式碼: #include <iostream> #include <cstdio> #include <cstdlib> #include <cs

Tunneling IPX Traffic through IP Networks(rfc1234)

Network Working Group D. ProvanRequest for Comments: 1234 Novell

UVA-IP Networks

Alex is administrator of IP networks. His clients have a bunch of individual IP addresses and he decided to group all those IP add

習題4-5 IP網路 UVa1590

#include <stdio.h> #include <string.h> char dstr[10]; char ostr[10];//前八位有效 char ostr2[10]; char dip[40],oip[40],mip[40]; char smallip[40]; ch

演算法競賽入門經典(第2版)習題4-5 IP網路UVa1590

#include <stdio.h> #include <string.h> int twoip[1005][35]; void changetwo(int num, int i, int j) { int q, chu = num; //printf("%d %d %d\n",

UVa1590 找最小子網掩碼,和子網ip

/* * 20171214 */ /* 注意: 1,數字沒有前導零,數字長度不一; 2,數字會出現0的情況; 3,注意初始化陣列,因為要用0來結束字串; */ #include <cstdio> #include <cstring>

JavaScript遍歷IP段內所有IP

hive write ora cor script list urn get ray 思路:將兩個IP轉換為數字進行比較,小的那個慢慢加一,直到變成大的那個IP所轉換的數字,將這其中的數字再轉換為IP地址即為IP段內所有的IP。 1 //IP轉數字 2 functio

docker 指定ip開容器,並且和內網在同一個網段

docker 指定ip開機器 並且和內網在同一個網段 docker 指定ip開機器,並且和內網在同一個網段 第1步:創建自定義網絡 備註:這裏選取了100.0.0.0網段,也可以指定其他任意空閑的網段 docker network create --subnet=100.0.