- 博客(73)
- 收藏
- 关注
原创 NS2 添加新协议
#ifndef ns_pings_h#define ns_pings_h#include "agent.h"#include "tclcl.h"#include "packet.h"#include "address.h"#include "ip.h"struct hdr_pings { char ret; //ret,如果包由来自发送方到被ping的节点时将会被设置为‘0’,在返回的路上,它将会被设置为‘1’。 double send_ti...
2022-04-12 21:34:34
552
1
原创 C++ cin流
一、>>代码1:char name[10];cin >> name;输入流:zhangsan lisi输出:zhangsan>>以空格为结束符,从流中读取zhangsan并保存到name中,lisi保存在缓冲区代码2:char name[10];char food[10];cout << "输入姓名:" <<food;cin >> name;cout << "食物:"
2022-04-11 16:59:38
737
原创 NS by Example
目录OTcl Linkage联接OTcl Linkage 联接添加新的基础网络对象去扩展NS,通常需要从C++代码中得到OTcl linkage(联接), 对象的类用C++来编写由于它的高效性。 本节介绍了NS中C++/OTcl联接, 并给出新建一个简单的名叫"MyAgent"代理的示例,"MyAgent"代理没有任何行为(i.e. no packet creation and transmission). Figures 18到 21列出了C++ source file for "My..
2022-04-06 20:12:13
281
原创 NS2问题解决
问题一:When configured, ns found the right version of tclsh in /usr/bin/tclsh8.6but it doesn't seem to be there anymore, so ns will fall back on running the first tclsh in your path. The wrong version of tclsh may break the test suites. Reconfigure and r.
2022-03-11 19:19:46
603
1
原创 NS2,使用threshold来计算无线传输模型的传输矩离
$cd /Documents/ns/ns-2.35/indep-utils/propagation/$g++ -lm threshold.cc -o threshold
2022-03-11 15:55:55
229
原创 pat 甲级 1002 python
不用考虑输入系数为0的情况,题目给出k为多项式非零项的个数注意一、如果加起来系数为0,则该项不输出,k也要减去系数为零的项注意二、如果k为0,即整个多项式为0(result为空),则只输出0,后面没有空格,要不然测试点6会出现格式错误注意三、一定要将系数变为1位小数输出,指数变为整型输出,要不让测试点2会出错通过。用字典存储多项式,key为指数,value为系数。如果不在字典的key中,就创建新的键值对。如果在key中,就将系数加到该key的value中。有可能指数高的key排在字典后面,因
2021-09-27 17:13:04
191
原创 pat 甲级 1001 python
计算结果从右往左,每三位加一个逗号(负号不算,逗号不能在第一位)。即计数标志符能被3整除并且不能等于结果的长度a,b = map(int,input().split())q = 0k = 0result = ""c = a + bif c < 0: q = 1c = str(abs(c))[::-1]for i in c: result = i + result k += 1 if k % 3 == 0 and k != len(c):
2021-09-27 12:05:35
86
原创 pat 乙类 1095 python
注意一、要求输出类型为1的指令时,查询为空则输出NA。即if len(p) == 0:print("NA"),只用if find[1] not in level:print("NA")只能判断指令是否是"A"、"B"、"T",不能用来判断是否是空集,测试点1、2会报错。类型为2或3时,可以使用if find[1] not in room_num:print("NA")或if find[1] not in date:print("NA"),因为在分类时已经排除没有的情况。类型1也可以在开始建立空字典,排除没有
2021-09-27 11:24:25
136
原创 pat 乙类 1094 python
注意、k位连续数字有可能会取到1或0,需要排除import mathl,k = map(int,input().split())n = input()for i in range(l-k+1): p = n[i:i+k] q = int(p) if q == 1 or q == 0: continue j = int(math.sqrt(q)) for m in range(2,j+1): if q % m == 0:
2021-09-24 19:03:23
118
原创 pat 乙类 1093 python
a = input()b = input()char = a + bresult = ""for i in char: if i not in result: result += iprint(result)
2021-09-24 17:14:43
53
原创 pat 乙类 1092 python
有序输入使用列表储存,无序输入可以考虑字典储存n,m = map(int,input().split())result = [0 for i in range(n)] # 创建初始化为0的列表s = []for i in range(m): num = list(map(int,input().split())) for k in range(n): result[k] += num[k]max_result = max(result)print(ma
2021-09-24 14:14:51
108
原创 pat 乙类 1091 python
注意一、题目要求输出最小的自守数,顺序遍历即可,找到就跳出当前循环,查找下一待检数的自守数注意二、整型不能计算长度,不能将待检数转化为整型。需要计算待检数的长度,方便对结果切片,因此计算出的结果要转化为字符串注意三、需要了解for...else的使用m = int(input())num = input().split()for k in num: l = len(k) for n in range(10): s = str(n * int(k)**2)
2021-09-22 21:08:18
82
原创 pat 乙类 1088 python
注意一、题目只说明甲是正整数,乙是甲的反转也是正整数,但丙不一定是正整数注意二、有多个解,则以甲取最大值为准。因此倒序遍历即可,找到解直接退出程序,不需要比大小和排序注意三、首先输出的是甲的能力值(不是自己的能力值)m,x,y = map(int,input().split())result = []for a in range(99,9,-1): # 倒序遍历,最先查找a的最大解 b = int(str(a)[::-1]) c = abs(a-b) / x
2021-09-21 18:57:30
82
原创 pat 乙类 1087 python
set()函数是一个无序不重复的元素集,可以用来删除重复的元素。作为一个无序的集合,set()不记录元素位置或者插入点。因此,不能使用索引和切片, 或其它类序列的操作。使用set()函数,将列表转化为集合,可以减少一个条件语句的使用,缩短运行时间。n = int(input())num = []for i in range(n+1): m = int(i/2) + int(i/3) + int(i/5) num.append(m)num = set(num)print(
2021-09-21 16:22:08
109
原创 pat 乙类 1086 python
注意、要将输出转化为整型。如输入a=10,b=10,乘积c =100,反转后时001,输出不是001而是1。题目没说清楚a,b = map(int,input().split())c = a * bc = str(c)[::-1]print(int(c))有两个测试点错误。左侧不能是0开头a,b = map(int,input().split())c = a * bc = str(c)[::-1]print(c)...
2021-09-21 15:36:39
88
原创 pat 乙类 1085 python
将总分由小数转化为整数,需要一个遍历来完成,会导致测试点5超时。如果先将每项分数转化为整数再相加(不符合题意),会导致测试点5出错字符串方法lower()比遍历转化快如果使用列表来存储查找修改元素:1、嵌套列表只能使用遍历的方法来查找,很慢。2、使用index()方法来查找元素索引,很慢字典比列表查找修改更快,同一个key有多个数据需要存储,可以使value用列表或字符串来存储数据,如{key1:[a1,b1],key2:[a2,b2],...}有时可以通过,有时测试点5会超时(限时800m
2021-09-21 14:49:38
132
原创 pat 乙类 1084 python
本题和题1078(字符串压缩与解压 )中的压缩部分很像,但比那个简单题1078链接:pat 乙类 1078 pythond,n = input().split()for i in range(int(n)-1): d += "#" same = d[0] count = 1 res = "" for j in d[1:]: if j == same: count += 1 else:
2021-09-20 22:02:49
97
原创 pat 乙类 1083 python
如果差值不在字典中,就创建一个新的键值对;如果存在于字典中,就将相应的值加1。减少了一个遍历的使用n = int(input())num = list(map(int,input().split()))result = {}for i in range(n): diff = abs(num[i]-i-1) if diff in result: result[diff] += 1 # 差值在字典的键中,就将相应的值加1 else:
2021-09-20 20:47:10
107
原创 pat 乙类 1082 python
可以不用开方,直接用平方数之和来比较大小n = int(input())d_min = 20000d_max = 0for i in range(n): name,x,y = input().split() d = int(x)**2+int(y)**2 if d <= d_min: d_min = d name_min = name if d >= d_max: d_max = d na
2021-09-20 19:47:09
68
原创 pat 乙类 1081 python
设置两位标志符,p,q分别代表字符串中是否有数字或字母。if...elif...else语句,先判断是否满足if条件,满足if则不执行elif和else后的语句;不满足if,再判断是否满足elif条件,满足elif则不执行else后的语句;不满足elif则执行elsen = int(input())for i in range(n): p = 0 # 数字标志符 q = 0 # 字母标志符 num = input() if len(num) <
2021-09-20 17:34:38
81
原创 pat 乙类 1080 python
注意一、尽量少使用循环迭代来查找元素,python效率很低,容易超时。查找嵌套列表中子列表中的元素只能使用循环迭代来查找,所以也要减少嵌套列表的使用。多使用单层列表或字典,因为可以用 if x in list(dir)来快速查找元素注意二、字典是无序的,不能使用sort()方法或sorted()函数来排序,要转化为有序的列表来排序,需使用字典特有的items()方法。items() 方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回可遍历的(键, 值) 元组数组。items
2021-09-20 14:41:47
118
原创 pat 乙类 1079 python
注意、非回文数反转时,首数字有可能是0,输出字符串格式即可注意、对字符串遍历时,可以不用考虑字符串长度时偶数还是奇数,用字符串长度除以2取整即可得到遍历查找对比的次数n = input()for i in range(10): l = len(n) w = int(l/2) for k in range(w): if n[k] == n[l-1-k]: pass else: break
2021-09-19 21:26:08
104
原创 pat 乙类 1078 python
注意一、不要将字符串分割,空格也算有效输入字符,也要进行计数注意二、在压缩时,要使循环多进行一轮(方便将结果加入到结果中,这样程序更简单),在字符串末尾多加一个字符即可注意三、解码时,数字不一定是个位数(有可能大于9),需要把数字字符串拼接起来n = input()char = input()result = ""if n == "C": same = "" count = 0 char += "0" # 在字符串后面多加一个字符0
2021-09-19 17:44:45
127
原创 pat 乙类 1077 python
注意一、不要删除正在遍历列表中的元素,会造成遍历错误。多建空白列表,不要吝啬注意二、在四舍五入的情况下不要使用round()函数,5不一定会入位。用数与它的整型相减,大于等于0.5就入位n,m = map(int,input().split())grade = []for i in range(n): score = list(map(int,input().split())) legal = [] for k in score: if 0 <=
2021-09-18 20:05:25
89
原创 pat 乙类 1076 python
将选项放入列表中,对正确答案再列表中查找索引,索引值加1即为该位密码用字符串存储密码,方便输出n = int(input())char = ["A","B","C","D"]num = ""for i in range(n): answer = input().split() for k in answer: if k[2] == "T": num += str(char.index(k[0]) + 1)print(num)
2021-09-17 20:31:38
74
原创 pat 乙类 1074 python
使用字符串来做更简单注意一、如果循环完成后,整除后的商还不为0的话(有进位),需要将商也加入到列表中注意二、输入长度不等的话,需要将左边用0补齐注意三、进制表中0要变为10,要不然除数是0注意四、高位0不输出,检测到高位零需去掉。只有0时,不能去掉,跳过这步,直接输出(太复杂了)。直接将字符串转化为整型输出,高位零被去掉了注意五、需考虑两个0相加的情况(题目说明:输入非负的pat数),输出为0使用列表存储数据,优点、直接将输入全部转化为整型列表,计算时不需要再将字符串转化为整型
2021-09-16 21:00:00
144
原创 pat 乙类 1072 python
注意一、同一个学生可能携带多个相同的查缴物品注意二、查缴物品需按学生携带顺序输出,遍历学生物品n,m = map(int,input().split())items = input().split()q = 0p = 0for i in range(n): stu = input().split() s = "" for k in range(2,2+int(stu[1])): if stu[k] in items: s +=
2021-09-15 19:05:22
69
原创 pat 乙类 1071 python
T,K = map(int,input().split())for i in range(K): n1,b,t,n2 = map(int,input().split()) if t > T: print("Not enough tokens. Total = %d." % T) else: if (n1 > n2 and b == 0) or (n1 < n2 and b == 1): T += t...
2021-09-15 17:03:08
82
原创 pat 乙类 1070 python
因为先套上的绳子需要多次对折,要想使串成的绳子最长,需要将绳段的长度升序排列,使最长的绳段最后串上,这样最长的绳段对折次数最少n = int(input())cord = list(map(int,input().split()))cord.sort()length = cord[0]for i in cord[1:]: length = (length + i) / 2print(int(length))...
2021-09-15 16:38:58
87
原创 pat 乙类 1069 python
注意、如果处于当前中奖位置的网友已经中过奖,则跳过他顺次取下一位,后续中奖位置都以变动后的位置开始,每隔N个人开始发红包m,n,s = map(int,input().split())reward = []result = []for i in range(m): name = input() reward.append(name)for k in range(s-1,m): if (k+1 - s) % n == 0: if reward[k] not
2021-09-15 16:22:02
87
原创 pat 乙类 1068 python
测试点3 测试点5 容易错注意一、这个点是独一无二,只出现了1次,如果这个点出现2次及以上,直接跳过。count()方法不能对嵌套列表使用注意二、矩阵的边缘也要考虑,可以设置条件,如果是边缘就不对比。也可以给这个矩阵加个边框,值初始化为0;注意三、题目说颜色差充分大,需加上绝对值abscontinue语句和break语句的区别:continue语句是跳过本轮循环,执行下一轮循环break语句是直接跳出循环体正确,无超时。四号测试点1100ms(超过1400ms会被判为超时)m,
2021-09-15 14:55:11
122
原创 pat 乙类 1067 python
注意、输入错误达到系统允许错误时,无论有没有下一次输入,都输出账号锁定code,n = input().split()n = int(n)while 1: word = input() if word == "#": break else: if word == code: print("Welcome in") break else: print("Wr
2021-09-15 10:39:59
99
原创 pat 乙类 1066 python
if与elif的区别:如果是if...if的情况,无论满不满足第一个if语句,都会执行第二个if语句。如果是if...elif的情况,满足第一个if语句后,不会执行elif语句,elif语句可分解为else+if两个语句。m,n,a,b,z=map(int,input().split())value = []for i in range(m): row = input().split() for j in range(n): if b >= int(row[j
2021-09-14 17:16:48
69
原创 pat 乙类 1065 python
注意一、当落单人数为0时,输出0,后面没有换行和空格注意二、要使用set()函数,不然会超时。可能参加人数的ID有大量重复注意三、set()函数是一个集合,不能使用sort()方法,需转化成列表再使用注意四、不能在最后将set里的字符串转化为整型,不然有一个测试点会出错(不懂为什么)也不能一开始就将输入转化为整型,要不然会超时,转化为整型很耗时?set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集。相当与没有键,只有值的简化字典。n.
2021-09-14 16:07:42
95
原创 pat 乙类 1064 python
n = int(input())num = input().split()result = []for i in range(n): s = 0 for k in range(len(num[i])): s += int(num[i][k]) if s not in result: result.append(s)result.sort()print(len(result))print(*result,sep=' ')
2021-09-14 11:41:10
106
原创 pat 乙类 1063 python
import mathn = int(input())max_mod = 0for i in range(n): a,b = map(float,input().split()) mod = math.sqrt(a**2+b**2) if mod > max_mod: max_mod = modprint("%.2f"%round(max_mod,2))
2021-09-14 10:52:07
45
原创 pat 乙类 1061 python
n,m = map(int,input().split())score = list(map(int,input().split()))answer = input().split()for i in range(n): student = input().split() result = 0 for k in range(m): if student[k] == answer[k]: result += score[k] pr.
2021-09-14 10:35:04
86
原创 pat 乙类 1060 python
一、先降序排列,再查找E的值。序列号加1即为天数二、将天数与骑车距离相比较即可三、需考虑两种特殊情况,1、全部满足,2、全部不满足n = int(input())num = list(map(int,input().split()))num.sort(reverse=True)for i in range(n): if num[0] > i+1: if num[i] > i+1: if i == n-1:
2021-09-14 09:52:50
76
原创 pat 乙类 1058 python
注意一、使用lstrip()和rstrip()方法可以删除字符串左右两端指定的字符(默认空格)(返回还是字符串),再使用split()方法分割字符串(返回列表)注意二、使用循环迭代创建列表n,m = list(map(int,input().split()))opt_list = []score_list = [0 for i in range(n)]err = [0 for i in range(m)]for i in range(m): opt = input() op
2021-09-13 16:07:19
135
原创 pat 乙类 1057 python
n = input()num = 0count0 = count1 =0for i in n: if 122 >= ord(i) >= 97: num += ord(i) -96 elif 90 >= ord(i) >= 65: num += ord(i) - 64while num > 0: mod = num % 2 num //= 2 if mod == 0: count...
2021-09-13 14:11:27
38
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人