华为OJ刷题(称砝码,两个IP是否是同一子网)
来源:互联网 发布:新人网络男主播技巧 编辑:程序博客网 时间:2024/05/16 12:38
1 称砝码(用动态规划即可解决)
#include<iostream>#include<string>#include<set>using namespace std;#define M 99int fama(int n,int*weight,int * nums);int main(){int n;int weight[M]={0},nums[M]={0};cin>>n;for(int i=0;i<n;++i)cin>>*(weight+i);for(int i=0;i<n;++i)cin>>*(nums+i);int number=0;number=fama(n,weight,nums);cout<<number<<endl;//system("pause");return 0;}int fama(int n,int* weight,int * nums){set<int> iset;int sum=0;for( int i=0;i<n;++i)sum+=*(weight+i)**(nums+i);iset.insert(sum);set<int>::iterator it;for(int i=0;i<n;++i){it=iset.begin();while(it!=iset.end()){for(int k=1;k<=*(nums+i)&&*it-k**(weight+i)>0;++k)iset.insert(*it-k**(weight+i));it++;}}iset.insert(0);return iset.size();}
2 判断两个IP是否属于同一子网(方法比较low,把IP分段处理)
#include<iostream>#include<string>using namespace std;int checkNetSegment(string,string,string);int segment(string,int*);int main(){string mask,ip1,ip2;cin>>mask;cin>>ip1;cin>>ip2;int label=checkNetSegment(mask,ip1,ip2);cout<<label<<endl;//system("pause");return 0;}int checkNetSegment(string mask,string ip1,string ip2){int mseg[4],seg1[4],seg2[4],label=0;int rcheck=segment(mask,mseg);if(rcheck==1)return 1;rcheck=segment(ip1,seg1);if (rcheck==1)return 1;rcheck=segment(ip2,seg2);if (rcheck==1)return 1;for (int i=0;i<4;++i){seg1[i]&=mseg[i];seg2[i]&=mseg[i];label+=((seg1[i]-seg2[i])==0);}if (label==4)return 0;elsereturn 2; } int segment(string s,int* seg){int pos=0;int i=0;int tmpip;while((pos=s.find_first_of('.'))!=-1&&i<4){ string tmp(s.begin(),s.begin()+pos);tmpip=atoi(tmp.c_str());s.erase(s.begin(),s.begin()+pos+1);pos=0;if (tmpip<0||tmpip>255)return 1;seg[i++]=tmpip;}tmpip=atoi(s.c_str());if(tmpip<0||tmpip>255)return 1;seg[3]=atoi(s.c_str());return 0;}
0 0
- 华为OJ刷题(称砝码,两个IP是否是同一子网)
- 华为OJ:判断两个IP是否属于同一子网
- 华为oj 判断两个ip是否属于同一子网
- 华为oj:判断两个IP是否属于同一个子网
- 华为oj 判断两个IP是否属于同一子网
- 【华为OJ】【075-判断两个IP是否属于同一子网】
- [华为OJ] 判断两个IP是否属于同一子网
- 【华为OJ】判断两个IP是否属于同一子网
- 华为OJ 初级:判断两个IP是否属于同一子网
- 华为OJ-判断两个IP是否在同一子网
- 华为OJ:判断两个IP是否属于同一子网
- 华为OJ判断两个IP是否属于同一子网
- 华为OJ:判断两个IP是否属于同一子网
- 华为OJ--判断两个IP是否属于同一个子网
- 华为OJ基础篇-判断两个IP是否属于同一子网
- 华为OJ——判断两个IP是否属于同一子网
- 华为OJ——判断两个IP是否属于同一子网
- [华为OJ--C++]075-判断两个IP是否属于同一子网
- 静态与动态两种方式来声明矩阵
- mac 高效MacBook工作环境配置
- 妙味课堂视频总结
- poj 3264 Balanced Lineup(RMQ)
- PyQt5初级教程--PyQt5中的事件和信号[6/13]
- 华为OJ刷题(称砝码,两个IP是否是同一子网)
- 1075. PAT Judge (25)
- 【笔试】2、求素数
- Unity 真机调试
- 大数据
- Java-----读、写文件的几种方法
- uva 131 - The Psychic Poker Player
- POJ 1321 棋盘问题
- HDU 2852 线段树(查询有序位置)