题1  Noip的快乐 (happy.pas/c/cpp) [问题描述] 终于到了一年一度的Noip比赛了,多么令人期待和兴奋的一天!其实,人们最高兴的还不是遇见老朋友,而是结交新朋友.可是结交新的朋友就需要很多时间,而除了考试之外时间并不多.例如小L,他在NOIP的入口处等待开门时,决定趁机和其它市县的牛们多套近乎.可是队伍太长,且人们都很自觉的站成仅仅一列,而小L又很想多交不同地方的朋友,因此小L想知道他在哪一个区域内可以结交到最多的不同地方的朋友.当然,这个区域不能太大,否则还没考试他就累…
C++11智能指针之std::unique_ptr   uniqut_ptr是一种对资源具有排他性拥有权的智能指针,即一个对象资源只能同时被一个unique_ptr指向. 一.初始化方式 通过new云算法或者普通指针 unique_ptr<Investment> up(new Investment()); 或者 Investment *pInv = new Investment(); unique_ptr<Investment> up1(pInv); 通过make_unique a…
一.题目 P2260 [清华集训2012]模积和 二.分析 参考文章:click here 具体的公式推导可以看参考文章.博主的证明很详细. 自己在写的时候问题不在公式推导,公式还是能够比较顺利的推导出来,但是,码力不够,比如说在乘积的时候,因为输入时候的$n$和$m$没有注意,一直用的$int$类型的,导致中间结果早就爆了,自己却浑然不知. 还有一个细节就是题目给的模数不是质数,所以求逆元的时候需要使用扩展欧几里得进行求解逆元. 三.AC代码 1 #include <bits/stdc++.h…
P2260 [清华集训2012]模积和 整除分块+逆元 详细题解移步P2260题解板块 式子可以拆开分别求解,具体见题解 这里主要讲的是整除分块(数论分块)和mod不为素数时如何求逆元 整除分块:求Σ「n/i」(i=1~n),「」表示向下取整 由于「n/i」在某段区间内都有相同的值,所以可以分块算,复杂度O( sqrt(n) ) code: ll res=; ,r;l<=n;l=r+){ r=n/(n/l): res=res+(r-l+)*(n/l);}return res; 当mod是素数时,…
c++11 智能指针 unique_ptr.shared_ptr与weak_ptr C++11中有unique_ptr.shared_ptr与weak_ptr等智能指针(smart pointer),定义在<memory>中. 可以对动态资源进行管理,保证任何情况下,已构造的对象最终会销毁,即它的析构函数最终会被调用. unique_ptr unique_ptr持有对对象的独有权,同一时刻只能有一个unique_ptr指向给定对象(通过禁止拷贝语义.只有移动语义来实现). unique_ptr…
「长乐集训 2017 Day10」划分序列 题目描述 给定一个长度为 n nn 的序列 Ai A_iA​i​​,现在要求把这个序列分成恰好 K KK 段,(每一段是一个连续子序列,且每个元素恰好属于一段),并且每段至少有一个元素,使得和最大的那一段最小. 请你求出这个最小值. 输入格式 第一行两个整数 n,K n, Kn,K,意义见题目描述.接下来一行 n nn 个整数表示序列 Ai A_iA​i​​. 输出格式 仅一行一个整数表示答案. 样例 样例输入 9 4 1 1 1 3 2 2 1 3…
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 十年前,手机的使用只是为了沟通. 而近几年,情况发生了很大变化,我们很难找到不使用手机的人.手机在极大程度上改变了人们的生活,特别是智能手机,人们沉迷于手中的这个小盒子里.是什么使人们如此无法自拔?打开手机才发现里面充斥着琳琅满目的移动应用程序. 尽管移动应用在行业中已经达到饱和点,但真正的设计师依然可以设计出脱颖而出的应用程序.在这里,我基于自己的一些经验和Google指南为设计师列出了11个有…
1. 介绍 一般一个程序在内存中可以大体划分为三部分——静态内存(局部的static对象.类static数据成员以及所有定义在函数或者类之外的变量).栈内存(保存和定义在函数或者类内部的变量)和动态内存(实质上这块内存池就是堆,通常通过new/malloc操作申请的内存).对于静态内存和栈内存来说,编译器可以根据它们的定义去自动创建和销毁的相应的内存空间.而对于动态内存,由于程序只有在运行时才知道需要分配多少内存空间,所以只能由程序员去动态的去创建和回收这块内存. 而对于动态内存的回收是一个很复…
如题,我们今天要讲的是C++11引入的三种智能指针中的最后一个:weak_ptr.在学习weak_ptr之前最好对shared_ptr有所了解.如果你还不知道shared_ptr是何物,可以看看我的另一篇文章[C++11新特性] C++11智能指针之shared_ptr. 1.为什么需要weak_ptr?在正式介绍weak_ptr之前,我们先来回忆一下shared_ptr的一些知识.我们知道shared_ptr是采用引用计数的智能指针,多个shared_ptr实例可以指向同一个动态对象,并维护了…
前言 C++里面的四个智能指针: auto_ptr, unique_ptr,shared_ptr, weak_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用. C++11智能指针介绍 智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象.当栈对象的生存周期结束后,会在析构函数中释放掉申请的内存,从而防止内存泄漏.C++ 11中最常用的智能指针类型为shared_ptr,它采用引用计数的方法,记录当前内存资源被多少个智能指针引用.该引用计数的内存在堆上分配.当新…