广工校赛的水题
来源:互联网 发布:win10禁止自动更新软件 编辑:程序博客网 时间:2024/05/22 00:16
Problem E: GDUT的实验室
Description
众所周知,我们GUDT的集训队实验室很高大上,里面拉有千兆光纤,下载速度高达***M/s…但是问题来了,我们都知道每台电脑都会被分配一个IP地址,这些IP地址形如A.B.C.D,但是机器只懂得二进制,它会将IP地址读成二进制的地址(仅有1和0),但机器难免会出点问题,现在给你一个十进制的IP地址,再给你一个机器翻译后的二进制的IP地址,问这两个地址是否相同?
Input
输入第一个行是一个整数T,表示总共有T组数据。(1<=T<=10000)
接下来是T组数据,每组数据占两行,第一行是十进制的IP地址(A.B.C.D)(0<=A,B,C,D<=255),第二行是机器翻译过的二进制的IP地址(XXXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX) ‘X’分别由’1’或者’0’组成
Output
结果输出T行,对应T组数据。十进制的IP地址与机器翻译过的二进制IP地址相同,则输出”Yes”,否则输出”No”,注意,输出时注意大小写且没有引号。
Sample Input
2
192.168.1.1
11000000.10101000.00000001.00000001
65.254.63.122
01000001.11111110.00111111.01111011
Sample Output
Yes
No
分析:自己真的太水了,在考虑着怎样把192转化为数字之后再变01序列,但是自己敲了挺久都没有出来,想用什么while(a[i]!='.')之类的,越弄越烦,最后直接看题解,发现还能这样用。。。还有什么string我不太会用。这样的话截取字符串就难了。
自己做题太少,连不考算法的水题都不会了
2017年3月11日21:59:48:
一段时间过去了,自己再来重做,发现其实不难,,看来有些东西其实动手了就不难。。。
当然有些东西盲目动手了反而会乱,会显得更难。。 着可真的是辩证啊。。附上自己再敲得代码
#include<string>#include<algorithm>#include<vector>#include<cstring>#include<cstdio>#include <vector>#include<iostream>#include<iomanip>using namespace std;int change(string s){ int ans=0; int num=1; for(int i=7;i>=0;--i){ if(s[i]=='1')ans+=num; num<<=1; } return ans;}int am[5];int main(){ int t; cin>>t; int a[4]; char ch; string b; string s2temp[4]; int s1temp[4]; while(t--){ cin>>a[0]>>ch>>a[1]>>ch>>a[2]>>ch>>a[3];//居然可以这样 cin>>b; s2temp[0]=b.substr(0,8); s2temp[1]=b.substr(9,8); s2temp[2]=b.substr(18,8); s2temp[3]=b.substr(27,8); s1temp[0]=change(s2temp[0]); s1temp[1]=change(s2temp[1]); s1temp[2]=change(s2temp[2]);//自己还不会这样用。 s1temp[3]=change(s2temp[3]); int ok=1; for(int i=0;i<4;++i){ if(s1temp[i]==a[i])continue; else ok=0; } if(ok)cout<<"Yes"<<endl; else cout<<"NO"<<endl; }}
其实什么字符串转换为数字啊。 转换为字符数组啊。。一点都不难的。。我不要畏惧
#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#include<string>#include<cstring>#include<iomanip>#include<iostream>#include<stack>#include<cmath>#include<map>using namespace std;typedef long long ll;int numb[4];int numa[4];int main(){ int t; scanf("%d",&t); while(t--){ string a,b; cin>>a>>b; int lena=a.length(); int cnt=0; memset(numa,0,sizeof(numa)); for(int i=0;i<lena;++i){ if(a[i]=='.'){ cnt++; continue; } numa[cnt]*=10; numa[cnt]+=a[i]-'0'; } cnt=0; for(int i=0;i<b.length();++i){ if(b[i]=='.'){ cnt++; continue; } numb[cnt]<<=1; numb[cnt]+=b[i]-'0'; } for(int i=0;i<4;++i) cout<<numa[i]<<' '<<numb[i]<<endl; int flag=1; for(int i=0;i<4;++i){ if(numa[i]!=numb[i]){ flag=0; break; } } if(flag)cout<<"Yes"<<endl; else cout<<"no"<<endl; }}
0 0
- 广工校赛的水题
- NOIP的水题
- 未完成的水题~~~~~~~~~~~~~~~~~~·
- 一道闹心的水题
- POJ上的水题
- 一道水题的感想
- 女王大人的水题
- 坑爹的水题
- 坑死了的水题
- 一些Codeforces的水题
- 期望dp的水题
- gym101102H(纯粹的水题)
- 神坑的水题
- 绝世好水的题
- 第一个被接受的ACM的水题。。。泪奔
- hdu 1229 水的不用看的一个大水题
- 一道关于快速幂的的水题
- poj 2533(裸的LIS,很少见的水题)
- Bootstrap 按钮组与下拉按钮(Button Groups & Button Dropdowns)
- js处理时间差
- 关于TensorFlow中的多图(Multiple Graphs)
- 深入理解 AngularJS 的 Scope
- 关于Android 开发常用软件的快捷键总结
- 广工校赛的水题
- Error: The Eclipse executable launcher was unable to locate its companion launcher jar 报错的解决办法
- Alamofire源码解读系列(二)之错误处理(AFError)
- gulp入门(11)- gulp-autoprefixer
- 快速记忆java抽象类和接口的区别
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- 我为什么要写博客
- c++vector类常见用法
- oracle存储过程中is和as的区别