常用代码及经验总结(不断更新)

2017-08-25 16:59:48

  今天遇到一个很神奇得体cf 35C

      如果不用以下这个代码就过不去??!!  

  竟然连test1都过不去

    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    ios_base::sync_with_stdio(false);

  所以以后还是要加上这段代码的

找到原因了,感觉自己好傻

这个题有说明了,之前PDF中已经明白题意所以没有仔细看题目,以后还是要小心了

 

以下是看cf 上大佬经常用的一些小代码

#include <bits/stdc++.h>
#define PI pair
#define pi acos(-1.0)
#define mem(a) memset(a,0,sizeof(a))
#define mems(a,b) memset((a),(b),sizeof(a))
#define ll long long
#define ull unsigned long long
#define rep(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)
#define REP(i,a,b) for(int (i)=(a);(i)<(b);(i)++)
#define ls root<<1
#define rs root<<1|1
#define Ls root<<1,l,mid
#define Rs root<<1|1,mid+1
#define pb push_back
#define IOS ios::sync_with_stdio(false),cin.tie(0);
const int inf=0x3f3f3f3f;
const ll INF=0x3f3f3f3f3f3f3f3f;
const double eps=1e-8;
const int maxn=200000+10; 
using namespace std;


#define ll long long int
#define fast_io ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL);
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define rev(i,a,b) for(ll i=a;i>=b;i--)
#define pll pair<ll,ll>
#define F first
#define S second
#define pb push_back
#define mp make_pair
#define V vector<ll>
#define print2(x) cout <<"####"<< #x <<"  =>  "<<x<< endl
#define print1(x) cout <<"****"<< #x <<"  =>  "<<x<< endl

 

2017-08-26 11:55:55

今天做的这个题Subset已经做了好几遍了,但是还是有问题,

今天给我最大的教训就是要注意数据类型,本来应该用longlong的用来int当然会一直wa

找各种逻辑错误,测试各种例子,却没有考虑到当给出比较大的数据的时候会溢出

 

2017-08-28 10:59:59

今天做的一道水题,二进制处理的题目,很简单,但是给我提醒了

首先:以后写代码要标注好开始时间和结束时间,用时间来限制

其次:以后写代码要写一部分就调试一部分,养成良好习惯

 

2017-08-29 10:30:08

要注意没有思路就不要再电脑前面干耗着,要拿出来纸笔开始写写画画,

不要着急,大体弄清思路才开始编码,要不然会导致效率低下;

 

2017-08-30 16:55:02

今天调试了很长时间,所以说以后还是尽量一次成功,调试花的时间实在是太长了

以后应该先想好在开始敲代码:

主要错误发现:

1、边界问题,大于小于号搞反了,还有 Mid >= r Mid < l如果都取等就会出现问题

2、输入输出问题,虽然之前测试了各种输入方式的快慢,但是还是有问题出现的,

为了保险起见,还是用scanf比较好,以后坚决不用cin cout 这两个太坑爹了

 

2017-08-31  19:11:42

 

总结:

 

1、这个也是采用每次一调试的办法来做的,但是这次调试中出现了重大失误,由于对以上两个函数调试的不严谨,

 

判断数据过小,导致小的数据可以过,但是大一点的数据就会失败的情况,这也是这么多次wa的原因

 

2、还是没有习惯用printf,所以以后写代码就加上fast_io,以后写代码尽量使用带加速到cin函数

 

3、数据生成器用另外一个project来写,用生成的数据进行对拍,这次发现错误考的就是对拍,没有对拍就很难改下去了,

 

这道题的对拍比较好些,虽然我用的是别人的代码做的对拍,但是这个对拍很容易写出来,就是运行时间有点长

 

4、这次还有重大错误就是定义域问题,使用memset的时候要看清作用的范围,还有各种初始化条件,都要关心每一遍的

 

遍历的作用

 

5、另外在面对一个循环中的多次询问,要保证每次的询问对下次的询问没有影响,恢复现场才可以。

 

6、hdu可以用bits/stdc++.h头文件

 

22:26:40

学dp入门的几个点:

1、状态真的很难想, 需要做很多题累积很多经验才可以

2、动态规划为了强调记忆性,可以采用自顶向下和自底向上两种方法

3、对于复杂的感觉很混乱的题目要分析其中的规律,比如对称,从某一个尾部的状态开始分析,

往前推导一下,就有可能找到状态

4、用tmp--变数--来维护一个区间值,可以不重复计算该区间的值,达到减少重复的效果,是dp中常用的方法;

5、有一个经验是题目中给的数据的范围一般就是dp的范围

6、dp经常会用到取模,但是如果用int的话可能在mod之前就会overflow,所以建议用long long

 

转载于:https://www.cnblogs.com/pprp/p/7428866.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值