泛型编程与 OI——modint】的更多相关文章

博客链接. 在 OI 中,有大量的题目要求对一些数字取模,这便是本文写作的背景. 背景介绍 这些题目要么是因为答案太大,不方便输出结果,例如许多计数 dp:要么是因为答案是浮点数,出题人不愿意写一个确定精度的 Special Judge,例如很多期望概率题:要么是因为这道题目直接考察了模的性质和运用,比如大量的 998244353 类的多项式题目. 过去的做法 在这种要求之下,取模运算就成为了编程中不可缺少的一部分.下面以式子 \(\texttt{ans}=(x+y+z)\times u\) 为…
泛型编程就是以独立于任何特定类型的方式编写代码,而模板是C++泛型编程的基础. 所谓template,是针对“一个或多个尚未明确的类型”所编写的函数或类. 使用template时,可以显示的或隐示的将类型当作参数来传递. 下面是一个典型的例子,传回两数中的较大者: template<class T> inline const T& MAX(const T& a,const T& b) { return a>b?a:b; } 在这里,第一行将T定义为任意数据类型,于…
你好,NOIP 2015年9月1日 正式成为了福建省莆田一中的一名高一成员 后来学校搞了选修 大家都很激动 因为自己的兴趣和特长能够得到发挥了(或者说能逃课或者看好多电影) 发现选修提供的选项中有好几项是竞赛 物竞 化竞 数竞 生竞什么的 数竞 觉得自己没那智商. 物竞 觉得自己没那智商. 生竞 觉得自己没那智商. 化竞 觉得自己没那智商. 发现有个计算机奥赛(其实仍然没那智商) 想起初中搞过的Pascal "那么为了装逼再入一回坑吧" 你怎么还不退出 第一次月考之后 心里灰蒙蒙的 怎…
1 问题引入 首先引入一个问题,实现一个泛型的swap函数,分别使用C++和C实现. 2 C++的泛型 C++有良好的泛型编程机制,所以我很快就写出了C++版的泛型swap函数. template<typename T> void MySwap(T &a, T &b) { T c = a; a = b; b = c; } 3 C语言的泛型 我的第一想法是既然不能直接交换变量(类型不知道),那就交换指针呀.下一瞬间,我就很想给自己一巴掌!是左值吗你就交换指针?Stupid! 那就…
本文章写于2008年12月15日. 随着2008noip的结束,我也结束了我的OI生涯. 信息竞赛也许是从小到大让我最最努力的一件事.我记得参加2006noip初赛前,每天中午为了上信息课都吃不上中午饭,只能吃点面包.然后总算是进了决赛,结果决赛得了个零分.比赛之后开始了新一轮的训练,放学后我经常做题做到11点多都不睡,连我自己都不清楚这么努力的原因,也许是因为兴趣吧. 一年后,2007noip赛前,听说这次一等的名额特别多,我本以为能拿一等,没想到我非常荣幸的以160分的成绩取得了二等奖第一名…
一.代码: 1.求逆元(原理貌似就是拓展欧几里得,要求MOD是素数): int inv(int a) { if(a == 1) return 1; return ((MOD - MOD / a) * inv(MOD % a)) % MOD; } 2.底层优化(正确性未验证): int cmp(int a) {if (!a) return 0; return a < 0 ? -1 : 1;} int cmp(int a) {return (a >> 31) + (-a >> 3…
泛型编程,英文叫做Generic programming 可以理解为,具有通用意义的.普适性的,编程. 比如,你要实现一个函数去比较两个数值的大小,数值可能是int或者string.初次尝试,我们直观会想到定义多个重载函数.如下: int compare(const string &v1, const string &v2) { if( v1 < v2) return -1; if ( v2 < v1) return 1; return 0; } int compare(con…
一.什么是泛型编程? 泛型就是通用的型式 编写不依赖数据对象型式的代码就是泛型编程 二.为什么需要泛型编程? 函数重载,相似类定义与型式兼容性 例如:设计函数,求两个数据对象的较小值 //未明确规定参数型式,因c/c++的强制式检查特性 //必须为不同型式的参数分别实现 //函数重载的数目巨大 //以上都是难以解决的问题 1.函数重载问题的解决方案有: 使用C的含参宏 缺点: 无型式检查,无法再编译期检查程序错误 宏文本替换时,要注意操作符优先级,错误的宏文本有可能导致问题 结论: 需要一种机制…
学习过C++的朋友们应该对STL和泛型编程这两个名词不会陌生.两者之间的关系不言而喻,泛型编程的思想促使了STL的诞生,而STL则很好地体现了泛型编程这种思想.这次想简单说一下STL在ACM中的一些应用.我们知道,在ACM竞赛中,经常需要用到数组.字符串.队列.堆栈.链表等数据结构和排序.搜索等算法,以提高程序的时间.空间运行效率.然而如果这些数据结构总是需要手工来编写,那无疑会是一件很麻烦的工作,而STL的出现很好地解决了这个问题. 我们简单来了解一下STL.STL提供了三种类型的组件:容器.…
NOIP2016于2016.11.20日12:00正式结束. 我作为oi的生涯 或许会结束? 或者继续? 然而前途依然迷茫,我是否应该继?或是放弃? 距离省选还有3~4个月,我该何去何从? 虽然已经经历过联赛,但是还有许多知识点没有啃(DP,线段树,流······) 既然已经入坑,就这样半途而废么?就这样放弃么?6个月的努力就这样消逝了么? 大神们在联赛中分数很高,但是你就这样认怂么? 我想答案是否定的. 虽然,你可能不能入选省队,但是那又如何.在省选之前不是还有几个月的时间来赶超他们么? 虽然…