自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 数星星

#include#include#include#include#include#include#include#includeusing namespace std;const int MAXN=200005;struct star{int x,y; int left,right,up,down; int xsmall,xlarge,ysmal

2015-12-03 21:32:32 377

原创 奶牛的狂欢节

注意如何用较快方法处理距离#include#include#includeusing namespace std;int sum[1000][1000];int n,t;int c(int x){   return x&(x^(x-1));}void change(int x,int y,int add){int ty=y;    while

2015-12-03 21:30:50 418

原创 矩阵的操作

#include#include#includeusing namespace std;int sum[1000][1000];int n,t;int c(int x){   return x&(x^(x-1));}void change(int x,int y,int add){int ty=y;    while(x    { y=ty;

2015-12-03 21:28:43 292

原创 树状数组求逆序对666

#include  #include  #include  using namespace std;  const int N=500010;  #define LL __int64  int c[N],b[N],n;  struct node{      int val,pos;     bool operator          return val

2015-12-03 21:27:43 318

原创 树状数组的模版

#include#include#includeusing namespace std;int a[1000];int sum[1000];int n;int c(int x){   return x&(x^(x-1));}void change(int x,int add){    while(x    {sum[x]=sum[x]+add; 

2015-12-03 21:26:47 248

原创 noip2015pj t4

由于前三题都太水所以懒的写题解。最后一题还是蛮有意思的,虽然数据也很水,我用了一种倒过来的贪心。先做出全部选的状态,再删去一个使得减少的最少,以此类推。每次删去有两种策略,删除最远的点和堆中最小的点(堆里各个点的大小顺序始终不变的)复杂度为nlog2n;但是我没证明为什么选4个的最优解一定包含了选3个的最优解虽然反过来做的时候感觉这是理所当然的。。。这里写代码:#include#inclu

2015-12-03 21:20:09 361

原创 lca

#include#include#include#include#include#include#include#include#include#include#include#include#include#define pb push_backusing namespace std;int n,m;bool  vis[10005]

2015-11-02 15:46:46 289

原创 逆序对的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 878

原创 强联通分量

#include#include#include#include#include#include#include#includeusing 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 403

原创 noip2013day2

严重感觉出题人脑子有问题。。。前两题几乎一毛一样。。都是找峰和谷。。200分轻松拿下。。加上第一题的260貌似已经够大浙江的一等线了、、。第三题看着感觉很麻烦。。。似乎爆搜拿不到几分。。。加上上午要去看sdl比赛。。。只打了一个多小时(day1不过打了2个小时) 所以就抱着玩一下的心态写了一个骗分,,顺利拿到5分。。。1刚刚说了找峰和谷然后自己找规律乱搞了一下加加减减。。。#include

2015-09-29 19:10:32 302

原创 noip2013

noip2013一开始打了260分。。。感觉最后一题实在太麻烦考试的时候也写不出来,,,打个60分也不错了。1.一开始被数据吓了一跳。。。然后想到肯定是快速幂。但我有点脑残的先用gcd求了一个循环节。其实只要mod m就可以了脑残脑残。还要提醒一下能不用mod尽量不用。mod的常数真的很大。代码:#include#include#include using namespace

2015-09-28 20:33:55 204

转载 codevs姓名与id

有N个人,各自有一个姓名和ID(别名)。每个人的姓名和ID都没有重复。这些人依次进入一间房间,然后可能会离开。过程中可以得到一些信息,告知在房间里的某个人的ID。你的任务是准确地确定每个人的ID。输入描述 Input Description第一行是整数N,表示N个人,N接下来的一行是N个人的ID,用一个空格分隔。接下来的若干行是过程的记录:一个字母和一个字符串。

2015-09-14 22:53:47 590

原创 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 274

原创 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 262

原创 list2

erase操作可以删除区间(左闭右开)也可以删除单个,但是在删除区间的时候it默认向后加1(当然你也可以不去接受他返回的值)#include #include #includeusing namespace stdint main (){  std::list mylist;  std::list::iterator it1,it2;  // set s

2015-08-14 21:37:34 358

原创 list

//一下是一些最基本的操作#include #include #Includeusing 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 263

原创 最短路

1062 路由选择 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond题解#include#include#include#include#include#include#includeusing namesp

2015-08-12 15:22:04 639

原创 最短路

1243 网络提速 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold题解题目描述 Description某学校的校园网由n(1现学校购买了m(1输入描述 Input Description第一行先输入n,

2015-08-12 15:13:25 535

原创 vector

关于vector的用法未完待续。。。。//v.begin()相当于下标为v[0]的地址 ,v.end()是次容器最后一个元素的下一个元素的地址,返回类型都是指针stl容器大都是; 左闭右开; #include#include#includeusing namespace std;void build1(){vector v;  vector u(v)

2015-08-07 17:32:17 257

转载 第四题

最优分解方案 [问题描述]经过第一轮的游戏,不少同学将会获得NOIP2012特别礼物,但这时细心的数学课代表发现了一个问题:留下来的人太多而使礼物数量可能不够,为此,加试了一道数学题:将一个正整数n分解成若干个互不相等的正整数的和,使得这些数的乘积最大,当主持人报出一个n后,请你立即将这个最大值报出来,现请你帮你的好友编一个程序来解决这个问题。[输入文件]输入文件中只有1个数n(其

2015-08-06 14:01:38 427

原创 第三题

做工作题目描述: 有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 249

原创 第二题

派对灯在庆祝NOIP2012的宴会上,我们有 N(10按钮1:当按下此按钮,将改变所有的灯:本来亮着的灯就熄灭,本来关着的灯被点亮。  按钮2:当按下此按钮,将改变所有奇数号的灯。 按钮3:当按下此按钮,将改变所有偶数号的灯。 按钮4:当按下此按钮,将改变所有序号是 3*K+1(K>=0)的灯。例如:1,4,7... 一个计数器C记录按钮被按下的次数。当宴会开始,所有的灯都

2015-08-06 13:37:25 305

转载 模拟赛第一题

循环数循环数是那些不包括0这个数字的没有重复数字的整数 (比如说, 81362)  并且同时具有一个有趣的性质, 就像这个例子:       如果你从最左边的数字开始 (在这个例子中是8) 数最左边这个数字到右边(回到最左边如果数到了最右边),你会停止在另一个新的数字(如果没有停在一个不同的数字上,这个数就不是循环数). 就像: 8 1 3 6 2  从最左边接下去数8个数字: 1 3 6

2015-08-06 13:31:46 651

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除