418

Posted Ga1ahad-and-Scientific-Witcher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了418相关的知识,希望对你有一定的参考价值。

收获:

 1)学会求欧拉函数

 2)有关约数的题目想好是到n还是n/2还是sqrt(n),不然WA和T得飞起

 3)乘法逆元竟然是这个意思

 

疑问:

堆的push_down

我的WA代码

void push_down(int x)

    while(x<<1 <=siz)
    
        int nx=x<<1;
        if(nx<siz && h[nx]<h[nx+1]) nx++;
        if(h[x]<h[nx])
        
            break;
        
        heap_swap(x,nx);
        x=nx;
    
    return ;

正确代码:

void push_down(int x)

    int t=x;
    if((x<<1) <= siz && h[t]>h[x*2]) t=x<<1;
    if((x<<1)+1 <=siz && h[t]>h[x*2+1]) t=(x<<1)+1;
    if(t!=x)
    
        heap_swap(x,t);
        push_down(t);
    

没想通为什么我写的过不了

ICMP:Internet控制报文协议

ICMP:Internet控制报文协议。

 

是IP层的组成部分,传递差错报文或其他信息。

 
ICMP报文被封装在IP数据报内部:
技术分享
 
详细格式例如以下所看到的:
技术分享
 
个字段含义例如以下:
  • 8位类型。表示该ICMP报文的含义。如目的不可达、超时、请求回显等。
  • 8为代码。

     

    进一步描写叙述该ICMP报文。ICMP报文的类型由类型字段和代码字段共同决定

  • 16位检验和。和IP首部检验和的算法同样。
 
我们常常使用的ping程序就是基于ICMP报文进行的传输。pingclient发送一个ICMP回显请求报文,server收到此报文后返回一个ICMP回显应答报文作为应答。client和server都是在内核层发送和接受该报文的,而不是通过用户进程。

 

回显请求和回显应答报文格式例如以下:

技术分享
 
类型0 + 代码0 = 回显应答
类型8 + 代码0 = 回显请求
 
ICMP回显请求和回显应答报文多出了几个特有的字段:
  • 标识符。表示发送进程的ID号。
  • 序号。

     

    从0開始,每发送一个新的回显请求就加1.

  • 选项数据。实际载荷,比如保存发送时间。接收端用当前时间减去发送时间就能计算出往返时间。

     

     

以下是抓包的结果:
技术分享
 
client一共向server发送了4个回显请求。TTL字段是在IP首部中的。因为ICMP属于IP层协议,而IP层又是不可靠、无连接、尽力而为式的传输,所以ping偶尔会出现传输出错的情况。
 
參考:
《TCP/IP具体解释》第6章、第7章。

以上是关于418的主要内容,如果未能解决你的问题,请参考以下文章

返回码418,scrapy 重新请求

418

loj #6091. 「Codeforces Round #418」幻想特快

Codeforces Round #418 (Div. 2) C

418

Codeforces Round #418 (Div. 2) B