07 2017 档案
摘要:#include using namespace std; int n,m,i,num[100001],t[200001],l,r;//num:原数组;t:树状数组 int lowbit(int x) { return x&(-x); //右起第一个1的位置为第k个 返回值则为2^(k-1) } void update(int x,int p)//更新第x 的值 { whil...
阅读全文
摘要:long long quick_pow(int a,int n) { long long result; if(n == 1) return a; if(!n) return 1; long long mid = quick_pow(a,n/2); if(n%2) result = mid*mid%modx*a%modx...
阅读全文
摘要:A:水 #include <bits/stdc++.h> #include <cstring> #include <iostream> #include <algorithm> #define EPS 1.0e-8 #define PI acos(-1.0) #define INF 30000000
阅读全文
摘要:先明白 基数排序 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为
阅读全文
摘要:int BiSearch(int len, int w) { int left = 0, right = len - 1; int mid; while (left <= right) { mid = left + (right-left)/2; if (bz[mid] > w) right = m
阅读全文
摘要:#include <iostream> #include <queue> #include <vector> using namespace std; const int N=405; struct rec { int v,w; }; vector<rec> edge[N*N]; int n,st,
阅读全文
摘要:A:树形DP 给出一棵树,但是它的边是有向边,选择一个城市,问最少调整多少条边的方向能使一个选中城市可以到达所有的点,输出最小的调整的边数,和对应的点 要改变的边的权值为1,不需要改变的边的权值为0, 两次dfs 第一次算出以1点为根节点到所有点要改变的边数,第二次以1为根节点向下遍历节点 算出每一
阅读全文
摘要:A: B:按题意直接暴力找符合题意的数的个数 #include <bits/stdc++.h> #include <cstring> #include <iostream> #include <algorithm> #define foror(i,a,b) for(i=a;i<b;i++) #def
阅读全文
摘要:B:读懂题意模拟 #include <bits/stdc++.h> #include <cstring> #include <iostream> #include <algorithm> #define foror(i,a,b) for(i=a;i<b;i++) #define foror2(i,a
阅读全文
摘要:A 略 B 略 C: 先对Ai数列预处理前缀和 然后把Bi的每个都加一次 最终得到的结果为ans[sum]++; 最后如果有一个ans[sum]>=k即满足所有K个条件就输出(注意!!前缀和要进行unique操作!!!因为可能会有+1 -1 +1这种出现 #include <bits/stdc++.
阅读全文
摘要:sstream ss()自动去除空格 例: 输出是1\n2\n3\n4\n; unique的作用是“去掉”容器中相邻元素的重复元素 它实质上是一个伪去除 它会把重复的元素添加到容器末尾 而返回值是去重之后的尾地址
阅读全文
摘要:A:水.看0多还是1多就行 B:模拟二进制运算 ,,卡了好久 不应该 #include <bits/stdc++.h> #include <cstring> #include <iostream> #include <algorithm> #define foror(i,a,b) for(i=a;i
阅读全文
摘要:状态比较容易表示,转移方程比较好想,问题比较基本常见 递推、背包、LIS(最长递增序列),LCS(最长公共子序列) HDU 2048 数塔 由上往下推 状态数太多(100!) 可以由下往上推: dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+dp[i][j]) 储存的话就
阅读全文
摘要:D:找到两个数 一个是另一个的整数倍(1也算) 因为N是600000 调和级数为ln(n+1) 算一下 可以直接爆 #include <bits/stdc++.h> #include <cstring> #include <iostream> #include <algorithm> #define
阅读全文
摘要:B:分析序列 构造树(优先队列) #include <bits/stdc++.h> #include <cstring> #include <iostream> #include <algorithm> #define foror(i,a,b) for(i=a;i<b;i++) #define fo
阅读全文
摘要:A:水. B:注意min(n,m)>=max(xmax-xmin+1,ymax-ymin+1)就行 C:刚开始想用待输入字符串是否是已经确定字符串的子串做(map<int,string>) 如果是就跳过 不是就把超过的部分赋值 这样就可以避免重复赋值 但总觉得不是还不是最优 后来看到有人用并查集做觉
阅读全文
摘要:基础博弈的小结:http://blog.csdn.net/acm_cxlove/article/details/7854530 经典翻硬币游戏小结:http://blog.csdn.net/acm_cxlove/article/details/7854534 经典的删边游戏小结:http://blo
阅读全文
摘要:Game theory初步 游戏1l 有两个游戏者:A和B。l 有21颗石子。l 两人轮流取走石子,每次可取1、2或3颗。l A先取。l 取走最后一颗石子的人获胜,即没有石子可取的人算输。如果剩下1、2或3颗石子,那么接下来取的人就能获胜;如果剩下4颗,那么无论接下来的人怎么取,都会出现前面这种情况
阅读全文
摘要:博弈论(一):Nim游戏 重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算。Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最
阅读全文
摘要:A:给一个包含字母 加号 括号的序列 要求你删除多余的括号然后输出 (待改) #include <bits/stdc++.h> #include <cstring> #include <iostream> #include <algorithm> #define foror(i,a,b) for(i
阅读全文
摘要:2-SAT POJ3683 操作树 仙人掌 HDU3594 平衡树 916D 可持久化Trie https://www.cnblogs.com/jszkc/p/7309468.html http://www.cnblogs.com/joyouth/p/5604618.html https://www
阅读全文
摘要:A:先分2种情况 第一种为奇数与偶数都不为0 第二种为有奇数或者偶数为0 第一种答案直接就是1<<(n-1) 第二种当奇数为0且P==1时不可能有奇数答案为0 P==0时 答案为C(n,0)一直加到C(n,n)答案为1<<n; 还有就是n==1时单独写出来就行 B:总共有N个格子 N-2个空格 初始
阅读全文
摘要:A:不管有没有负数 一顿操作之后肯定只有正数 又因为A=A-B 所以最大值是一直在减小的 所以一定有结果 B:..一开始以为求min操作数 WA了2发 直接求所有数的GCD如果所有数的GCD都不是1的话就无解 有解就无脑扫2次就好了 C:给你一个char正方形矩阵 要求a[i][j]四个正方形对称轴
阅读全文
摘要:题意:给定A,B,问[A,B]里取任意个数按位或,结果有多少种。 思路:这题需要找出一个分界点,即找到最高位的B是1,A是0的位置x(最低位从0开始),那么对于所有OR的结果,x处要么是1要么是0,x是0有多少种呢?这里就需要从[A,1<<x)里挑选数进行OR,即有(1<<x)-A种,因为A到(1<
阅读全文
摘要:题意:n*m矩阵,n,m<=2e3,矩阵中的1能走到相邻4个1上,0代表障碍,若两个1联通 则只有一条路径 q个询问,q<=2e5,每次询问一个子矩阵中有多少个连通分量?同一个连通分量中任意两点只有一条路径,于是对相邻的每个1连接一条边,每一个连通分量显然都为一颗树若子矩形有k个联通分量,因为每个联
阅读全文
摘要:在引入右值引用,转移构造函数,转移复制运算符之前,通常使用push_back()向容器中加入一个右值元素(临时对象)的时候,首先会调用构造函数构造这个临时对象,然后需要调用拷贝构造函数将这个临时对象放入容器中。原来的临时变量释放。这样造成的问题是临时变量申请的资源就浪费。 引入了右值引用,转移构造函
阅读全文
摘要:c++中for(auto count : counts)
阅读全文
摘要:给你N(1<=N<=100)个区间 l-r 求最大的子区间大小使每个区间都有这个子区间且覆盖不重复 做法 输入的时候纪录区间最大值 然后二分求答案
阅读全文
摘要:有一个M*N的矩阵,有一个会自动清洁的机器人,这个机器人会按照设定好的程序来打扫卫生,如果当前方向前面可以行走,那么直接走,如果不可以走那么会向右转动90度,然后回归上一步判断。求机器人最多能打扫的面积是多少 一开始认为是走到之前清扫过的就停止搜索 后来知道是走到一个四个方向都走过的点才停止搜索
阅读全文
只有注册用户登录后才能阅读该文。
只有注册用户登录后才能阅读该文。
浙公网安备 33010602011771号