首页 > 其他分享 >HJ39 判断两个IP是否属于同一子网

HJ39 判断两个IP是否属于同一子网

时间:2024-09-02 18:15:42浏览次数:4  
标签:cnt 子网 return int IP HJ39 num printf

没啥好说的,又是模拟+一堆无聊的细节。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 char s[3][20];
 4 int num[3][10],cnt[3];
 5 void init(){
 6     for(int i=0;i<3;i++)
 7         scanf("%s",s[i]);
 8     return;
 9 }
10 int Work(int a,int b){
11     int x=0,i=a,j=b,f=1;
12     while(s[i][j]<'0'||s[i][j]>'9'){
13         if(s[i][j]=='-')f=-1;
14         j++;
15     }
16     while(s[i][j]>='0'&&s[i][j]<='9'){
17         x=x*10+s[i][j]-'0';
18         j++;
19     }
20     return f*x;
21 }
22 void GetNum(){
23     for(int i=0;i<3;i++){
24         int l=strlen(s[i]);
25         for(int j=0;j<l;j++)
26             if(s[i][j]=='-'||(s[i][j]>='0'&&s[i][j]<='9')){
27                 if(j==0||(s[i][j-1]<'0'||s[i][j-1]>'9')){
28 //                    printf("!%c",s[i][j]);
29                     num[i][++cnt[i]]=Work(i,j);
30 //                    printf("%d ",num[i][cnt[i]]);
31                 }
32             }
33     }
34     return;
35 }
36 bool Check3(){
37     int e[40],cnt=0;
38     for(int i=1;i<=4;i++){
39         for(int j=7;j>=0;j--){
40             int t=1<<j;
41             cnt++;
42             if(t&num[0][i]) e[cnt]=1;
43             else e[cnt]=0;
44         }
45     }
46     if(e[1]==0||e[cnt]==1)return 0;
47     for(int i=2;i<=cnt;i++)
48         if(e[i]==1&&e[i-1]==0)return 0;
49     return 1;
50 }
51 bool Check(){
52     for(int i=0;i<3;i++)
53         if(cnt[i]!=4)return 0;
54     for(int i=0;i<3;i++)
55         for(int j=1;j<=4;j++)
56             if(num[i][j]<0||num[i][j]>255)return 0;
57     if(!Check3())return 0;
58     return 1;
59 }
60 bool CheckZW(){
61     for(int i=1;i<=4;i++){
62         int a=num[1][i]&num[0][i];
63         int b=num[2][i]&num[0][i];
64 //        printf("%d %d\n",a,b);
65         if(a!=b)return 0;
66     }
67     return 1;
68 }
69 int main(){
70     init();
71 //    puts("OK");
72     GetNum();
73     if(!Check()){
74         puts("1");
75         return 0;
76     }
77     if(CheckZW()){
78         puts("0");
79     }
80     else puts("2");
81     return 0;
82 }

 

标签:cnt,子网,return,int,IP,HJ39,num,printf
From: https://www.cnblogs.com/AlenaNuna/p/18393238

相关文章

  • [vue] jszip html-docx-js file-saver 图片,纯文本 ,打包压缩,下载跨域问题
    npminstalljszipfile-saverimportJSZipfrom'jszip';importFileSaverfrom'file-saver';JSZip创建JSZip实例:constzip=newJSZip();创建文件:支持导出纯文本zip.file("hello.txt","HelloWorld\n");创建文件夹:zip.folder("file")......
  • 信息学奥赛初赛天天练-82-NOIP2014普及组-完善程序-机器语言、汇编语言、高级语言、计
    1NOIP2014普及组基础题11以下哪个是面向对象的高级语言()A汇编语言BC++CFortranDBasic2TB代表的字节数是()A2的10次方B2的20次方C2的30次方D2的40次方3二进制数00100100和00010101的和是()A00101000B001010......
  • 河北成人高等教育在线刷课脚本-JavaScript编写
    脚本学习网站:河北成人高等教育在线:http://www.hbcjpt.com/portal/脚本地址:河北成人高等教育在线刷课脚本-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取......
  • 奥鹏教师教育网刷课脚本-JavaScript编写
    脚本学习网站:奥鹏教师教育网:http://www.ourteacher.com.cn/脚本地址:奥鹏教师教育网-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索Tampermonk......
  • 青海专业技术人员学习网刷课脚本-JavaScript编写
    脚本学习网站:青海省专业技术人员继续教育平台:https://qh.ctet.org.cn青海专业技术人员学习网:https://qinghai.qgzjrcw.com.cn脚本地址:青海专业技术人员学习网-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以......
  • 山财培训网刷课脚本-JavaScript编写
    脚本学习网站:山财培训网首页-会计培训专家:http://training.sdufe.edu.cn/脚本地址:山财培训网-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索T......
  • 成都继续教育刷课脚本-JavaScript编写
    脚本学习网站:www.cdjxjy.com,www.cdzjjj.com脚本地址:成都继续教育-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索Tampermonkey,并点击获取那个......
  • 临沂市专业技术人员继续教育刷课脚本-JavaScript编写
    脚本学习网站:sdly.treewises.com脚本地址:临沂市专业技术人员继续教育-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索Tampermonkey,并点击获取那......
  • 秦皇岛继续教育刷课脚本-JavaScript编写
    脚本学习网站:秦皇岛集溪教育职教网平台www.qhdjxjy.com脚本地址:秦皇岛继续教育-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索Tampermonkey,......
  • 内蒙古巴彦淖尔市事业单位工作人员在线培训网刷课脚本-JavaScript编写
    脚本学习网站:byne.chinahrt.cn脚本地址:内蒙古巴彦淖尔市事业单位工作人员在线培训网-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索Tampermonke......