北京信息学培训第四天

简单行程

  还有必要讲吗?还是要讲讲的。今天搞了件大事(xin)情(wen),不过讲出来不太好,就不讲了,大致就是黑客干的那些事。

学到了什么

  说实话,今天学到了不少,感觉自己的世界观都被改变了,在此和大家分享。

  1. DP的单调性优化有两种方法:斜率优化和四边形不等式。
  2. vector、stack、queue比较慢,考试时最好自己写。
  3. 双端队列,最好也自己写,经典应用:滑动窗口。
  4. 测程序内存占用的两种方法(详情见附件)
  5. 不要用float,用double,用float不如用int。
  6. 可以使用C++自带的priority_queue,不需要自己写。
  7. 自带的priority_queue默认是最大优先队列,要想实现最小优先队列,不必使用greater,可以将存入的数据改为其相反数,取出时在改过来即可。十分巧妙。
  8. 传址比传值快。
  9. 在C++自带的priority_queue中放结构体时,结构体要重载小于号。
  10. 一个常见错误。(详情见附件)
  11. scanf的巧妙用法(详情见附件)。
  12. 预编译的巧妙用法(详情见附件)。
      不多讲,直接看附件。

附件

测程序内存占用

  第一种,用MinGW自带的size.exe工具,如图:
size.exe
具体使用方法:将你的程序放在该目录下,在该目录下打开cmd,输入如下命令:

size.exe [您的程序名字]

效果如图:
效果
红框中是内存大小,前者是十进制,后者是十六进制,单位是字节。
不过值得注意的是,这算的只是程序的静态内存,什么是静态内存?就是在函数外部定义的变量和数组,举个例子:

int out[1000];//这是静态内存
int main(){
    int in[1000];//这是动态内存
    return 0;
}

一个常见错误

  这是什么神奇的错误呢?先上代码:

char c[1000];
for(int i=0;i<strlen(c);i++){

}

有什么问题?strlen()也是需要计算时间的,这样放在循环里,会重复计算多次,导致时间复杂度增加,正确写法:

char c[1000];
int x=strlen(c);
for(int i=0;i<x;i++){

}

scanf的巧妙用法

举个例子,如果我们要读入两个日期,然后计算他们之间有多长时间,该怎么读?比如:

1989-06-24 00:00:00

字符串处理?那你就out了!正确读法:

scanf("%d-%d-%d %d:%d:%d",&year,&month,&day,&hour,&minute,&second);

惊不惊喜?意不意外?就是这么神奇。

预编译的巧用

用法一

scanf虽然神奇,但在读取long long型数据时,比较麻烦,为什么?因为在不同平台下,用的格式控制不一样:

WIN32 %I64d
Linux %lld
WIN64 %I64d %lld

那么我们该怎么办呢?
我们可以这样处理:

#ifdef WIN32
#define LL "%I64d"
#else
#define LL "%lld"
#endif
int main(){
    long long x;
    scanf(LL,&x);
    return 0;
}

相当的巧妙。

用法二

网上测评往往用的是标准输入输出,但我们自己测试通常用文件,切换很麻烦,所以我们也可以用预编译来处理:

int main()
{
    #ifdef ONLINE_JUDGE
    ;
    #else
    freopen("in","r",stdin);
    freopen("out","w",stdout);
    #endif
    return 0;
}
内容概要:本文深入探讨了多种高级格兰杰因果检验方法,包括非线性格兰杰因果检验、分位数格兰杰因果检验、混频格兰杰因果检验以及频域因果检验。每种方法都有其独特之处,适用于不同类型的时间序列数据。非线性格兰杰因果检验分为非参数方法、双变量和多元检验,能够在不假设数据分布的情况下处理复杂的关系。分位数格兰杰因果检验则关注不同分位数下的因果关系,尤其适合经济数据的研究。混频格兰杰因果检验解决了不同频率数据之间的因果关系分析问题,而频域因果检验则专注于不同频率成分下的因果关系。文中还提供了具体的Python和R代码示例,帮助读者理解和应用这些方法。 适合人群:从事时间序列分析、经济学、金融学等领域研究的专业人士,尤其是对非线性因果关系感兴趣的学者和技术人员。 使用场景及目标:①研究复杂非线性时间序列数据中的因果关系;②分析不同分位数下的经济变量因果关系;③处理不同频率数据的因果关系;④识别特定频率成分下的因果关系。通过这些方法,研究人员可以获得更全面、细致的因果关系洞察。 阅读建议:由于涉及较多数学公式和编程代码,建议读者具备一定的统计学和编程基础,特别是对时间序列分析有一定了解。同时,建议结合具体案例进行实践操作,以便更好地掌握这些方法的实际应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值