sizeof

Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)

∥☆過路亽.° 提交于 2020-02-25 01:43:57
二进制专场,还被FST一题。 A、签到,题意是,给定a,b,c f(0)=a,f(1)=b,f(n)=f(n-1)^f(n-2) 求f(n) 稍微化简就看得出f(x)是按照a,b,a^b这样在循环出现 因为a^b^a=b,a^b^b=a 代码: #include <bits/stdc++.h> #define int long long #define sc(a) scanf("%lld",&a) #define scc(a,b) scanf("%lld %lld",&a,&b) #define sccc(a,b,c) scanf("%lld %lld %lld",&a,&b,&c) #define schar(a) scanf("%c",&a) #define pr(a) printf("%lld",a) #define fo(i,a,b) for(int i=a;i<b;++i) #define re(i,a,b) for(int i=a;i<=b;++i) #define rfo(i,a,b) for(int i=a;i>b;--i) #define rre(i,a,b) for(int i=a;i>=b;--i) #define prn() printf("\n") #define prs() printf(" ") #define mkp make_pair

socket笔记2

梦想的初衷 提交于 2020-02-24 16:46:08
2.10 网络报文的数据格式定义及使用 网络报文包含两个部分,头和体。 服务端 // Created by Surser on 2020/1/17. // Copyright © 2020 Surser. All rights reserved. // #ifdef _WIN32 #include<windows.h> #include<WinSock2.h> #else #include <unistd.h> #include<arpa/inet.h> #include<string.h> #define SOCKET int #define INVALID_SOCKET (SOCKET) (~0) #define SOCKET_ERROR (-1) #endif #include <stdio.h> #include<thread> #include<iostream> using namespace std; enum CMD { CMD_LOGIN, CMD_LOGOUT, CMD_ERROR }; struct DataHeader { short dataLength; short cmd; }; //DataPacket struct Login { char userName[32]; char PassWord[32]; }; struct LoginResult

c++给数组赋值

橙三吉。 提交于 2020-02-24 14:43:21
c++的基础不牢啊.甚至是c语言也忘记了..所以以后遇到感觉怪异的语法都保存下来,没事翻翻看看 例一 void getSize(int n[]) //把数组名传给函数的形参时候 一维数组[]不用指定大小 二维数组[n][] 形参必须要指定第一维的大小{ std::cout<<sizeof(n)<<std::endl; //这里是4 虽然形参写的是n[]但是n在这里就是一个指针,指向实参的数组的首地址} 1 int _tmain(int argc, _TCHAR* argv[]) 2 { 3 char s[3] = 4 { 5 'a', 6 'b', 7 'c', //最后一个值后面的逗号有没有都可以 8 }; 9 std::cout<<s<<std::endl; //会出问题 因为s指向的数组没有用'\0'结尾 10 for (int i = 0; i < 3; i++) 11 std::cout<<s[i]<<std::endl; //'a' \n 'b' \n 'c' \n指的是换行 12    13 int n[3] = {0}; 14 for (int i = 0; i < 3; i++) 15 std::cout<<n[i]<<std::endl; //数组的局部变量初始化的时候给赋值了一个,后面没被赋值的都被自动赋值0; 如果没被赋值,就会是随机数        

linux网络多线程编程实例

让人想犯罪 __ 提交于 2020-02-24 14:43:06
用的是UDP方式。 服务器能同时接受十个客户端,各个客户端可以相互点对点通讯;可以对所有连到 服务器的客户端广播;也可以和服务器通讯。服务器也可以广播。 运行时你要先看懂源代码中的命令: "/w " 广播 ; "/s n " 对某个客户端; "/sv "对服务器; 命令是引号中的部分,注意空格。 服务端代码: #include<sys/stat.h> #include<fcntl.h> #include<unistd.h> #include<sys/types.h> #include<sys/socket.h> #include <sys/wait.h> #include <netinet/in.h> #include<arpa/inet.h> #include<stdio.h> #include<string.h> #include<stdlib.h> #include <pthread.h> #define PORT 8889 #define max_size 256 ///////////////////////////////////////////////////////// int sockfd,sockfd2[10],ret,i=0,j,flag=0; struct sockaddr_in addr; struct sockaddr_in addr2[10]; int

linux系统中使用socket直接发送ARP数据

折月煮酒 提交于 2020-02-24 14:42:14
这个重点是如这样创建socket: sock_send = socket ( PF_PACKET , SOCK_PACKET , htons ( ETH_P_ARP) ) ; 其后所有收发的数据都是原始的网络数据包。 代码如下:在X86和ARM平台上都测试通过。调用arp_scaner_init之后 ,调用send_arp来发送ARP数据包,thread_read_arp中就会收到对端的反馈,并将其保存。 在此非常感谢其他同仁的分享,使我学会了这个用法。 #include <unistd.h> #include <errno.h> #include <netdb.h> #include <signal.h> #include <sys/socket.h> #include <sys/poll.h> #include <sys/ioctl.h> #include <netinet/if_ether.h> #include <net/if_arp.h> #include <netinet/udp.h> #include <netinet/ip.h> #include <stdio.h> #include <stdarg.h> #include <net/if.h> #include <arpa/inet.h> #include <string.h> #include "adapter

linux 网络编程:客户端与服务器通过TCP协议相互通信 + UDP

感情迁移 提交于 2020-02-24 14:26:28
1、TCP编程的客户端一般步骤: 1、创建一个socket,用函数socket(); 2、设置socket属性,用函数setsockopt();* 可选; 3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选; 4、设置要连接的对方的IP地址和端口等属性; 5、连接服务器,用函数connect(); 6、收发数据,用函数send()和recv(),或者read()和write(); 7、关闭网络连接; 2、TCP编程的服务器端一般步骤: 1、创建一个socket,用函数socket(); 2、设置socket属性,用函数setsockopt(); * 可选; 3、绑定IP地址、端口等信息到socket上,用函数bind(); 4、开启监听,用函数listen(); 5、接收客户端上来的连接,用函数accept(); 6、收发数据,用函数send()和recv(),或者read()和write(); 7、关闭网络连接; 8、关闭监听; 3、客户端源代码(tcpclient.c): #include <stdio.h> #include <string.h> #include <errno.h> #include <sys/socket.h> #include <stdlib.h> #include <netinet/in.h> #include <arpa

C++ sizeof 运算符

删除回忆录丶 提交于 2020-02-24 14:21:49
sizeof 是一个关键字,它是一个编译时运算符,用于判断变量或数据类型的字节大小。 sizeof 运算符可用于获取类、结构、共用体和其他用户自定义数据类型的大小。 使用 sizeof 的语法如下: sizeof (data type) 其中,data type 是要计算大小的数据类型,包括类、结构、共用体和其他用户自定义数据类型。 请尝试下面的实例,理解 C++ 中 sizeof 的用法。复制并黏贴下面的 C++ 程序到 test.cpp 文件中,编译并运行程序。 1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 cout << "Size of char : " << sizeof(char) << endl; 7 cout << "Size of int : " << sizeof(int) << endl; 8 cout << "Size of short int : " << sizeof(short int) << endl; 9 cout << "Size of long int : " << sizeof(long int) << endl; 10 cout << "Size of float : " << sizeof(float) << endl; 11 cout << "Size

素数筛专题精讲

自作多情 提交于 2020-02-23 22:52:18
素数筛 筛法的思想是去除要求范围内所有的合数,剩下的就是素数 了,而任何合数都可以表示为素数的乘积,因此如果已知一 个数为素数,则它的倍数都为合数。 事前需知: 1.sizeof和strlen的区别 strlen计算字符串的长度,以’\0’为字符串结束标志 sizeof是分配的数组实际所占的内存空间大小,不受里面存储内容 2.每种类型的变量都有各自的初始化方法,memset() 函数可以说是初始化内存的“万能函数”,通常为新申请的内存进行初始化工作。它是直接操作内存空间,mem即“内存”(memory)的意思。该函数的原型为: # include <string.h> void * memset ( void * s , int c , unsigned long n ) ; memset() 函数函数的功能是:将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化。 一.复杂度:nlogn long long su [ max ] , cnt ; bool isprime [ max ] ; void prime ( ) { cnt = 1 ; memset ( isprime , 1 , sizeof ( isprime ) ) ; //初始化认为所以数都是素数

C++内存管理转自http://soft.yesky.com/lesson/110/2381610.shtml

拈花ヽ惹草 提交于 2020-02-23 15:04:50
转自 http://soft.yesky.com/lesson/110/2381610.shtml 踏入C++中的雷区——C++内存管理详解 2006-04-25 09:22 作者:蒋涛 出处:计算机教学网 责任编辑:方舟   伟大的Bill Gates 曾经失言:   640K ought to be enough for everybody — Bill Gates 1981   程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。    1、内存分配方式   内存分配方式有三种:   (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。   (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。   (3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。    2

2014-10-28 NOIP模拟赛

北城以北 提交于 2020-02-23 03:38:07
Porble 1 时间与空间之旅(tstrip.*) 题目描述 公元22××年,宇宙中最普遍的交通工具是spaceship。spaceship的出现使得星系之间的联系变得更为紧密,所以spaceship船长也成了最热门的职业之一。当然,要成为一名出色的船长,必须通过严格的考核,例如下面是最简单的问题中的一个。 用1~n的整数给n个星系标号,目前你在标号为1的星系,你需要送快递到标号为n的星系,星系之间由于存在陨石带,并不是都可以直连的。同时,由于超时空隧道的存在,在某些星系间飞行会出现时间静止甚至倒流,飞行时间为0或为负数。另外,由星系i到星系j的时间和由星系j到星系i的时间不一定是相同的。 在寄出日期之前收到快递被认为是不允许的,所以每部spaceship上都有一个速度调节装置,可以调节飞行的时间。简单来说其功能就是让所有两个星系间的飞行时间(如果可以直达)都增加或减少相同的整数值,你的任务就是调整速度调节器,找出一条用最短时间完成任务的路径,并且保证这个最短时间的值大于或等于0。 输入格式 输入文件包含多组数据,第1个数为T,表示数据的数量。 对于每一组数据,输入第1行为两个正整数N(2≤N≤100),E(1≤E≤N*(N-1)/2),为星系的个数和星系间飞行的路线数。然后E行,每行三个整数i,j和t(1≤i,j≤N,i≠j,-100000≤t≤100000)