oi
文章平均质量分 76
zyhsdl
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
vector
关于vector的用法未完待续。。。。 //v.begin()相当于下标为v[0]的地址 ,v.end()是次容器最后一个元素的下一个元素的地址,返回类型都是指针stl容器大都是; 左闭右开; #include #include #include using namespace std; void build1() {vector v; vector u(v)原创 2015-08-07 17:32:17 · 315 阅读 · 0 评论 -
lca
#include #include #include #include #include #include #include #include #include #include #include #include #include #define pb push_back using namespace std; int n,m; bool vis[10005]原创 2015-11-02 15:46:46 · 318 阅读 · 0 评论 -
逆序对的dp
求逆序对:关于逆序对的DP(和归并没半毛关系) 1ff 我们说(i,j)是a1,a2,…,aN的一个逆序对当且仅当ia j。例如2,4,1,3,5的逆序对有3个,分别为(1,3),(2,3),(2,4)。现在已知N和K,求1…N的所有特定排列,这些排列的逆序对的数量恰好为K。输出这些特定排列的数量。 例如N=5,K=3的时候,满足条件的排列有15个,它们是: 1,2,5,4,原创 2015-11-02 14:26:37 · 950 阅读 · 0 评论 -
强联通分量
#include #include #include #include #include #include #include #include using namespace std; struct Edge { int to,va,va2; };vector a[80005],b[80005],node[80005]; int he[80005]; int n,m,t=原创 2015-10-26 23:03:05 · 450 阅读 · 0 评论 -
codevs姓名与id
有N个人,各自有一个姓名和ID(别名)。每个人的姓名和ID都没有重复。这些人依次进入一间房间,然后可能会离开。过程中可以得到一些信息,告知在房间里的某个人的ID。你的任务是准确地确定每个人的ID。 输入描述 Input Description 第一行是整数N,表示N个人,N 接下来的一行是N个人的ID,用一个空格分隔。 接下来的若干行是过程的记录:一个字母和一个字符串。转载 2015-09-14 22:53:47 · 669 阅读 · 0 评论 -
noip2013
noip2013一开始打了260分。。。感觉最后一题实在太麻烦考试的时候也写不出来,,,打个60分也不错了。 1.一开始被数据吓了一跳。。。然后想到肯定是快速幂。但我有点脑残的先用gcd求了一个循环节。其实只要mod m就可以了脑残脑残。还要提醒一下能不用mod尽量不用。mod的常数真的很大。 代码:#include #include #include using namespace原创 2015-09-28 20:33:55 · 259 阅读 · 0 评论 -
第四题
最优分解方案 [问题描述] 经过第一轮的游戏,不少同学将会获得NOIP2012特别礼物,但这时细心的数学课代表发现了一个问题:留下来的人太多而使礼物数量可能不够,为此,加试了一道数学题:将一个正整数n分解成若干个互不相等的正整数的和,使得这些数的乘积最大,当主持人报出一个n后,请你立即将这个最大值报出来,现请你帮你的好友编一个程序来解决这个问题。 [输入文件] 输入文件中只有1个数n(其转载 2015-08-06 14:01:38 · 493 阅读 · 0 评论 -
模拟赛第一题
循环数 循环数是那些不包括0这个数字的没有重复数字的整数 (比如说, 81362) 并且同时具有一个有趣的性质, 就像这个例子: 如果你从最左边的数字开始 (在这个例子中是8) 数最左边这个数字到右边(回到最左边如果数到了最右边),你会停止在另一个新的数字(如果没有停在一个不同的数字上,这个数就不是循环数). 就像: 8 1 3 6 2 从最左边接下去数8个数字: 1 3 6转载 2015-08-06 13:31:46 · 697 阅读 · 0 评论 -
第二题
派对灯 在庆祝NOIP2012的宴会上,我们有 N(10 按钮1:当按下此按钮,将改变所有的灯:本来亮着的灯就熄灭,本来关着的灯被点亮。 按钮2:当按下此按钮,将改变所有奇数号的灯。 按钮3:当按下此按钮,将改变所有偶数号的灯。 按钮4:当按下此按钮,将改变所有序号是 3*K+1(K>=0)的灯。例如:1,4,7... 一个计数器C记录按钮被按下的次数。当宴会开始,所有的灯都原创 2015-08-06 13:37:25 · 359 阅读 · 0 评论 -
第三题
做工作 题目描述: 有N(1 输入: 第一行为两个整数,N和S 下面N行,每行为Y_i和C_i 输出: N天的工作最少需要多少钱 样例输入 4 5 88 200 89 400 97 300 91 500 样例输出 126900 Hint OUTPUT DETAILS: In day 1, prod原创 2015-08-06 13:48:04 · 285 阅读 · 0 评论 -
list2
erase操作可以删除区间(左闭右开)也可以删除单个,但是在删除区间的时候it默认向后加1(当然你也可以不去接受他返回的值) #include #include #include using namespace std int main () { std::list mylist; std::list::iterator it1,it2; // set s原创 2015-08-14 21:37:34 · 419 阅读 · 0 评论 -
list
//一下是一些最基本的操作 #include #include #Include using namespace std; int main( ) { using namespace std; list c1, c2; list::const_iterator cIter; c1.push_back( 10 ); c1.push_原创 2015-08-14 21:34:31 · 297 阅读 · 0 评论 -
list4
#include #include bool single_digit ( int value) { return (value // a predicate implemented as a class: struct is_odd { bool operator() ( int value) { return (value%2)==1; } }; int ma原创 2015-08-14 21:48:28 · 302 阅读 · 0 评论 -
list3
插入要记牢是插入在某个元素之前 #include #include #include int main () { std::list mylist; std::list::iterator it; // set some initial values: for (int i=1; i it = mylist.begin();原创 2015-08-14 21:42:01 · 299 阅读 · 0 评论 -
最短路
1062 路由选择 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 #include #include #include #include #include #include #include using namesp原创 2015-08-12 15:22:04 · 692 阅读 · 0 评论 -
最短路
1243 网络提速 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 某学校的校园网由n(1 现学校购买了m(1 输入描述 Input Description 第一行先输入n,原创 2015-08-12 15:13:25 · 586 阅读 · 0 评论 -
noip2015pj t4
由于前三题都太水所以懒的写题解。最后一题还是蛮有意思的,虽然数据也很水,我用了一种倒过来的贪心。先做出全部选的状态,再删去一个使得减少的最少,以此类推。每次删去有两种策略,删除最远的点和堆中最小的点(堆里各个点的大小顺序始终不变的)复杂度为nlog2n;但是我没证明为什么选4个的最优解一定包含了选3个的最优解虽然反过来做的时候感觉这是理所当然的。。。 这里写代码:#include #inclu原创 2015-12-03 21:20:09 · 407 阅读 · 0 评论
分享