ccf计算机软件能力认证考试难度,CCF计算机软件能力认证(CSP)部分题解.pdfVIP

ccf计算机软件能力认证考试难度,CCF计算机软件能力认证(CSP)部分题解.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ccf计算机软件能⼒认证考试难度,CCF计算机软件能⼒认证 (CSP)部分题解 201812-3 CIDR合并 题⽬想求与给定前缀列表等价的包含IP前缀数⽬最少的前缀列表。 ⾸先是怎么存储前缀列表。⽤⼀个long long存储IP地址,再存⼀个前缀长度,封装在⼀个结构体⾥\(\),⽅便后⾯排序等操作。IP前缀有三 种输⼊格式,稍微分情况讨论⼀下。 接着以\(ipNum\)为第⼀关键字,\(len\)为第⼆关键字升序排序。 然后考虑去除匹配集被其它IP前缀包含的IP前缀。考虑之前匹配集范围的上届\(mmax\),顺序遍历⼀下就好了。将剩余的IP列表按之前顺 序存在⼀个静态链表中。 最后将相邻的可合并的IP前缀合并,其实就是前缀长度最后⼀位0和1,之前完全相同即可。 温习⼀下链表的插⼊删除操作。 #include typedef long long LL; const int maxn = 1000000; using namespace std; struct tIP { LL ipNum; int len; int before, next; tIP() { before = next = -1; } bool operator (const tIP y) const { if(ipNum == y.ipNum) return len y.len; return ipNum y.ipNum; } void show() { LL num[5]; LL temp = ipNum; for (int i = 4; i = 1; i--) { num[i] = temp % 256; temp /= 256; } for (int i = 1; i =4; i++) { printf(%lld, num[i]); if (i == 4) printf(/); else printf(.); } printf(%d\n, len); } }; tIP ip[maxn+10]; LL getMMax(tIP iip) { LL temp = (1LL (32-iip.len)) - 1; return iip.ipNum | temp; } int main() { int n; scanf(%d, n); char s[30]; for (int id = 1, slash, dotCnt, style; id = n; id++) { slash = 0; dotCnt = 0; scanf(%s, s + 1); for (int i = 1; s[i] != \0; i++) { if (s[i] == /) slash = 1; if (s[i] == .) dotCnt ++; } if (slash == 1 dotCnt == 3) style = 1; else if (slash == 1 dotCnt 3) style = 2; else style = 3; LL num[5]; memset(num, 0, sizeof(num)); if (style == 1 || style == 2) for (int i = 1, temp = 0, numCnt = 1; ; i++) if (s[i] == . || s[i] == /) num[numCnt++] = temp * 1LL; temp = 0; } else if (s[i] == \0) ip[id].len = temp; break; } else temp = temp * 10 + s[i] - 0; } } } else { for (int i = 1, temp = 0, numCnt = 1; ; i++) { if (s[i] == .) { num[numCnt++] = temp * 1LL; temp = 0; } else if (s[i] == \0) { num[numCnt++] = temp * 1LL; ip[id].len = (numCnt-1) * 8; break; } else { temp = temp * 10 + s[i] - 0; } } } LL ans = 0; for (int i = 1; i = 4; i++) { an

文档评论(0)

. + 关注
官方认证
文档贡献者

专注于职业教育考试,学历提升。

版权声明书
用户编号:8032132030000054
认证主体社旗县清显文具店
IP属地河南
统一社会信用代码/组织机构代码
92411327MA45REK87Q

1亿VIP精品文档

相关文档