北郵新OJ98
這題其實很蛋疼,在九度OJ一直過不了,但是在北郵OJ相同的程式碼直接AC
主要就是考慮資料包長度不是固定的即可
當時被九度的判題整瘋了,程式碼也寫的很長很繁瑣
#include<iostream> #include<stdio.h> #include<stdlib.h> #include<string.h> using namespace std; void P(char str[],int n) { //int len=strlen(str); cout<<"Case #"<<n<<endl; //求資料包長度 int temp1,temp2,temp3,temp4; if('0'<=str[6]&&str[6]<='9') temp1=str[6]-'0'; else if('a'<=str[6]&&str[6]<='z') temp1=str[6]-'a'+10; else temp1=str[6]-'A'+10; if('0'<=str[7]&&str[7]<='9') temp2=str[7]-'0'; else if('a'<=str[7]&&str[7]<='z') temp2=str[7]-'a'+10; else temp2=str[7]-'A'+10; if('0'<=str[9]&&str[9]<='9') temp3=str[9]-'0'; else if('a'<=str[9]&&str[9]<='z') temp3=str[9]-'a'+10; else temp3=str[9]-'A'+10; if('0'<=str[10]&&str[10]<='9') temp4=str[10]-'0'; else if('a'<=str[10]&&str[10]<='z') temp4=str[10]-'a'+10; else temp4=str[10]-'A'+10; int T_len=temp1*4096+temp2*256+temp3*16+temp4; cout<<"Total length = "<<T_len<<" bytes"<<endl; //求源IP int a,b; if('0'<=str[36]&&str[36]<='9') a=str[36]-'0'; else if('a'<=str[36]&&str[36]<='z') a=str[36]-'a'+10; else a=str[36]-'A'+10; if('0'<=str[37]&&str[37]<='9') b=str[37]-'0'; else if('a'<=str[37]&&str[37]<='z') b=str[37]-'a'+10; else b=str[37]-'A'+10; temp1=a*16+b; if('0'<=str[39]&&str[39]<='9') a=str[39]-'0'; else if('a'<=str[39]&&str[39]<='z') a=str[39]-'a'+10; else a=str[39]-'A'+10; if('0'<=str[40]&&str[40]<='9') b=str[40]-'0'; else if('a'<=str[40]&&str[40]<='z') b=str[40]-'a'+10; else b=str[40]-'A'+10; temp2=a*16+b; if('0'<=str[42]&&str[42]<='9') a=str[42]-'0'; else if('a'<=str[42]&&str[42]<='z') a=str[42]-'a'+10; else a=str[42]-'A'+10; if('0'<=str[43]&&str[43]<='9') b=str[43]-'0'; else if('a'<=str[43]&&str[43]<='z') b=str[43]-'a'+10; else b=str[43]-'A'+10; temp3=a*16+b; if('0'<=str[45]&&str[45]<='9') a=str[45]-'0'; else if('a'<=str[45]&&str[45]<='z') a=str[45]-'a'+10; else a=str[45]-'A'+10; if('0'<=str[46]&&str[46]<='9') b=str[46]-'0'; else if('a'<=str[46]&&str[46]<='z') b=str[46]-'a'+10; else b=str[46]-'A'+10; temp4=a*16+b; cout<<"Source = "<<temp1<<"."<<temp2<<"."<<temp3<<"."<<temp4<<endl; //目的IP if('0'<=str[48]&&str[48]<='9') a=str[48]-'0'; else if('a'<=str[48]&&str[48]<='z') a=str[48]-'a'+10; else a=str[48]-'A'+10; if('0'<=str[49]&&str[49]<='9') b=str[49]-'0'; else if('a'<=str[49]&&str[49]<='z') b=str[49]-'a'+10; else b=str[49]-'A'+10; temp1=a*16+b; if('0'<=str[51]&&str[51]<='9') a=str[51]-'0'; else if('a'<=str[51]&&str[51]<='z') a=str[51]-'a'+10; else a=str[51]-'A'+10; if('0'<=str[52]&&str[52]<='9') b=str[52]-'0'; else if('a'<=str[52]&&str[52]<='z') b=str[52]-'a'+10; else b=str[52]-'A'+10; temp2=a*16+b; if('0'<=str[54]&&str[54]<='9') a=str[54]-'0'; else if('a'<=str[54]&&str[54]<='z') a=str[54]-'a'+10; else a=str[54]-'A'+10; if('0'<=str[55]&&str[55]<='9') b=str[55]-'0'; else if('a'<=str[55]&&str[55]<='z') b=str[55]-'a'+10; else b=str[55]-'A'+10; temp3=a*16+b; if('0'<=str[57]&&str[57]<='9') a=str[57]-'0'; else if('a'<=str[57]&&str[57]<='z') a=str[57]-'a'+10; else a=str[57]-'A'+10; if('0'<=str[58]&&str[58]<='9') b=str[58]-'0'; else if('a'<=str[58]&&str[58]<='z') b=str[58]-'a'+10; else b=str[58]-'A'+10; temp4=a*16+b; cout<<"Destination = "<<temp1<<"."<<temp2<<"."<<temp3<<"."<<temp4<<endl; //IP頭的長度 int len; if('0'<=str[1]&&str[1]<='9') len=str[1]-'0'; else if('a'<=str[1]&&str[1]<='z') len=str[1]-'a'+10; else len=str[1]-'A'+10; len=len*4*2;//以一個符號為單位 int st=len/2*3;//st是TCP的起始地址 //源埠 int s; if('0'<=str[st]&&str[st]<='9') temp1=str[st]-'0'; else if('a'<=str[st]&&str[st]<='z') temp1=str[st]-'a'+10; else temp1=str[st]-'A'+10; if('0'<=str[st+1]&&str[st+1]<='9') temp2=str[st+1]-'0'; else if('a'<=str[st+1]&&str[st+1]<='z') temp2=str[st+1]-'a'+10; else temp2=str[st+1]-'A'+10; if('0'<=str[st+3]&&str[st+3]<='9') temp3=str[st+3]-'0'; else if('a'<=str[st+3]&&str[st+3]<='z') temp3=str[st+3]-'a'+10; else temp3=str[st+3]-'A'+10; if('0'<=str[st+4]&&str[st+4]<='9') temp4=str[st+4]-'0'; else if('a'<=str[st+4]&&str[st+4]<='z') temp4=str[st+4]-'a'+10; else temp4=str[st+4]-'A'+10; s=temp1*4096+temp2*256+temp3*16+temp4; cout<<"Source Port = "<<s<<endl; //目的埠 st=st+6; int d; if('0'<=str[st]&&str[st]<='9') temp1=str[st]-'0'; else if('a'<=str[st]&&str[st]<='z') temp1=str[st]-'a'+10; else temp1=str[st]-'A'+10; if('0'<=str[st+1]&&str[st+1]<='9') temp2=str[st+1]-'0'; else if('a'<=str[st+1]&&str[st+1]<='z') temp2=str[st+1]-'a'+10; else temp2=str[st+1]-'A'+10; if('0'<=str[st+3]&&str[st+3]<='9') temp3=str[st+3]-'0'; else if('a'<=str[st+3]&&str[st+3]<='z') temp3=str[st+3]-'a'+10; else temp3=str[st+3]-'A'+10; if('0'<=str[st+4]&&str[st+4]<='9') temp4=str[st+4]-'0'; else if('a'<=str[st+4]&&str[st+4]<='z') temp4=str[st+4]-'a'+10; else temp4=str[st+4]-'A'+10; d=temp1*4096+temp2*256+temp3*16+temp4; cout<<"Destination Port = "<<d<<endl; } int main() { int n; while(scanf("%d",&n)!=EOF) { getchar(); for(int i=1;i<=n;i++) { char str[1001]; gets(str); P(str,i); cout<<endl; } //cout<<endl; } return 0; }
相關推薦
北郵新OJ98
這題其實很蛋疼,在九度OJ一直過不了,但是在北郵OJ相同的程式碼直接AC 主要就是考慮資料包長度不是固定的即可 當時被九度的判題整瘋了,程式碼也寫的很長很繁瑣 #include<iostream> #include<stdio.h> #includ
北郵 北理 人大經驗
導師 下午 結果 初步 小時 內容 錄取 方向 區別 準備及報考個人經驗: 定好目標 詢問學長學姐 確定讀研地點 了解各個選擇的區別【學專博】 註意官網及保研論壇 多嘗試 沒有多大興趣的不要亂報 入營後聯系該地其他學校的導師見面 有機會抓住 不成功爭取9
北郵軟院機試2018
因數 字符串 OS 長度 求一個 十進制數 img mar gpo 1.二進制數字調轉 題目描述:一個2^32的數字n,將其轉換成二進制數,再倒轉,求倒轉的二進制數對應的十進制數。 舉例:123 —— 0000 0000 0000 0000 0000 0000 0000 0
保研之路------塵埃落定(復旦,同濟,北郵)
自我介紹:本科南京郵電大學貝爾英才學院 保研院校:碩士北京郵電大學網路研究院 不知不覺已經大四了, 就在今天的下午我確認了北郵的擬錄取通知,其實我的內心還是有些失落和不甘的。看到同學有去清華,北大、浙大、同濟,覺得很羨慕。我也總結一下自己保研的一些遺憾和後悔吧。 首先:保研之前我就
北郵803考研經驗雜談
3月31日複試終於結束了,這段備戰歷程也該告一段落了。一路上可以說坎坎坷坷,初試分不高,複試分也不高,不過最後被自己青睞的導師收了。趁著清明放假,還是想把這段經歷記錄下來。 首先說說我的背景吧!本科雙非學校,平時成績還算過得去,不過不是特別好的那種,所以沒能拿到保研名額。所以最後選擇了考研,辛苦一
2018北郵網研機試-C
C簡單的24點 輸入為4個數字,a,b,c,d。若a^b^c^d=24,則稱該陣列滿足24點,其中^可以為+、-、*、/任一個,若不能得到結果24,則稱該陣列不滿足24點。(計算為實型) 輸入: 第一行為測試組數t 接下來t行,每一行為四個整數a,b,c,d,測試是否滿足24點 1<
2018北郵網研機試-D
D 最大價值 對於每一個零件都有一個適宜溫度區間,[Ri,Ji],當溫度t<Ri,零件價值為x,當t>Ji,零件價值為z;當溫度適宜,價值為y。且y>x,y>z。此刻,有一恆溫箱,可確定溫度t。 輸入 第一行按順序分別為 n,x,y,z。0<n<20000
2018北郵網研機試-B
ProblemB V字型數列,當且僅當三元組i<j<k,且 a[i]>a[j]並且a[k]>a[j],算作一個V型數列。 輸入 第一行為測試資料組數T 每組資料第一行為該陣列的數字個數 接下來一行為陣列元素 輸出: 輸出對應陣列中符合v字形數列的個數  
2018北郵網研機試-A
Problem A 類似超市結賬,計算購買的商品的總價格。 輸入: 第一行為測試資料組數T(0<T<=10) 每組資料第一行為購買商品的種類n,接下來n行,每行兩個資料,第一個為商品價格,第二個為商品數量,價格為實型。 輸出 每一行輸出相對應資料的總價值,保留兩位小數。 &
校外控制北郵校內PC(使用win PC/Android手機/iPad)
想幹嘛? 當然是隨時隨地 線上觀看網路高清搞比利 訪問校內PC上的資源,比如在宿舍用iPad看實驗室電腦上幾十G的藍光電影,比如在家處理一些在實驗室電腦上的檔案,比如突然放鬼畜嚇唬一下實驗室同學 ,甚至Van♂PC上的遊戲等等。好吧,我覺得最大的用處就是拯救一下
推薦個北郵的計算機專業的自考
自考科目如下: 感興趣的,可以自己去北京教育考試院上面報名即可。需要注意的是,計算機專業自考有一定難度(好在這個專業沒有高數…),量力而行。 如果有疑問可以留言。 另外摘抄其他自考人的部分心得
推導2019北郵803考試大綱
803計算機學科基礎綜合 一、 考查目標 計算機學科基礎綜合考試涵蓋資料結構、計算機組成原理、作業系統和計算機網路等學科專業基礎課程。要求考生比較系統地掌握上述專業基礎課程的基本概念、基本原理和基本方法,能夠綜合運用所學的基本原理和基本方法分析、判斷和解決有關理
手把手教你做北郵作業系統小學期實驗一——Linux啟動過程優化1
1.實驗環境: 硬體:Intel i5 作業系統:Windows 8.1 虛擬機器:VMware Workstation 12.5.0 軟體:Red Hat Enterprise Linux 9 (Linux 核心 2.4.20-8) 2.
考研北郵總結
從開始-------6月 主要是數學和英語 數學 資料:課本和課後習題全解。 要把知識點,以及課後習題過一遍。先看知識點,再做課後習題。一遍後如果覺得掌握的不好,還有時間的話可以再看一遍知識點。(我當時覺得這樣太慢,我是隻看了知識點沒做課後習題,但是一遍過後覺得好多都忘了,
著名的北郵ACM推薦50題
POJ推薦50題 1、標記“難”和“稍難”的題目可以看看,思考一下,不做要求,當然有能力的同學可以直接切掉。 2、標記為A and B的題目是比較相似的題目,建議大家兩個一起做,可以對比總結,且二者算作一個題目。 3、列表中大約有70個題目。大家選做其中的50道,且每類題目有最低數量限制。 4、這裡不少題目在
北郵初試+複試經驗分享
初試情況:政治--53、英語--70、數學--122、計算機綜合(803)--110一些相關的基本情況:本科專業數學、本科期間學過資料結構、通過了英語四六級、本科成績還算可以初試材料選擇(建議可以不聽):主要是數學、專業課和英語,政治可以後期準備數學:李永樂數學全書、660題
2013北郵計算機院上機題
A 日期 Description 請你計算出第X年Y月Z日是第X年的第幾天。其中,1月1日是第一天,1月2日是第二天,以此類推。 計算時請注意閏年的影響。對於非整百年,年數能整除4是閏年,否則不是閏年;對於整百年,年數能整除400是閏年,否則不是閏年。如
python爬蟲例項—獲取北郵教務GPA
# -*- coding: cp936 -*- #計算北郵教務GPA程式 #by JerryFang #2013.11.13 import urllib2 import re import cookielib from urllib import urlencode imp
python 登入北郵校園網出口訪問外網
遠端機器上跑著linux , 需要在win7使用SecurityCRT遠端。 在學校內如果要訪問外網的話,需要用賬號登入才可以。 linux的文字模式下無法開啟瀏覽器,只能寫成指令碼登入了。#!/usr/bin/env python #coding=utf-8 #北郵校園網
2016北郵計算機考研複試上機題解
今年的題的難度很低。反正是13到現在最簡單的一次了吧。 全場AK的貌似是39人。 估計是由於15年的題目出的太難,全場沒人過四題的緣故吧。。 下面是題目。 1.三元組 問題描述 給你一個長度為m的陣列(陣列元素從0到m-1),如果數組裡有a[i]+a[j]==a