08 2015 档案
摘要:思路首先 有 等差数列求和公式 : S=(a1+an)*n/2;进一步化简成只包含 a1 和 项数n : S=a1*n + (n-1)*n/2;(本题 等差 d=1)此时 题中给了S 即 M, 求 区间[a1,an], 这样问题就归结到 确定n 在范围内 搜索 满足上述公式 a1的值 即可得出答案而...
阅读全文
摘要:总结:①不管是什么进制,在计算机中都是以二进制来计算的,只是按输入输出的格式不同,而强制转化为其它的进制②这里要注意的是15位的16进制数超过了二进制中的32位而小于64位。所以这里用__int64的类型。输入输入出格式就是(%I64x,%I64X)。③由于%I64X,不能输出负数,所以负数的输出要...
阅读全文
摘要:思路:通过画图可知重叠矩形的主对角线 左下端点X值取决于X1 X3大的那个 Y值同理 当然前提是X1 X3 Y1 Y3满足主对角线的端点坐标而右上端点的X值取决于X2 X4小的那个 Y值同理再画图分析 易得 重叠矩形的对角线 如果是主对角线 那么 面积不为0, 不是主对角线 则不重叠#include...
阅读全文
摘要:substr: basic_string substr( size_type index, size_type num = npos ); substr()返回本字符串的一个子串,从index开始,长num个字符。如果没有指定,将是默认值 string::npos。这样,substr()函数...
阅读全文
摘要:递推思路首先考虑 n条直线最多分平面问题n条直线,最多可以把平面分为多少个区域。当有n-1条直线时,平面最多被分成了f(n-1)个区域。则第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点。这样就会得到n-1个交点。这些交点将第n条直线分为2条射线和n-2条线断。而每条射线和线断将...
阅读全文
摘要:现对于上一道”神、上帝以及老天爷” 只求M个数的错排数 不同的本题 是求N个数中M的错排数先从N个数中 取M个数有CnM种取法 再乘上M的错排数就是答案 错排数的求法参考上一篇文章其中组合公式如下 #include#include#includeusing namespace std;...
阅读全文
摘要:错排简化公式:D(n) = [n!/e+0.5]其中e是自然对数的底,[x]为x的整数部分#include#include#include#includeusing namespace std;const double e=exp(1);// e的1次方int main(){ double a...
阅读全文
摘要:递推思路:第n位取值有①E或F②O对于① 第n-1位任意 取法有arr[b-1]种 那么n位符合条件的组合有 2*f[n-1];对于② 第n-1位只能取E F 而第n-2位任意 取法同上思路即f[n-2] 那么n位符合条件的组合有2*f[n-2];综上:arr[n]=arr[n-1]*2+arr[n...
阅读全文
摘要:递推思路:手算推导 arr[1]=3, arr[2]=6, arr[3]=6, arr[4]=18;此时推导arr[n]=?(n>3) 考虑到第n-1位取值有 ①与第一位相同②与第一位不同;容易理解的是 第n-1位与第一位不同(这样的取值方法共有arr[n-1]个) 那么第n位只有一种取值 即除了第...
阅读全文
摘要:#includeusing namespace std;const int Size=600000;int arr[Size+1];int main(){ for(int i=1; i>M; while(M--) { cin>>...
阅读全文
摘要::注意两数相乘可能超出范围 导致WA#includeusing namespace std;int GCD(int a, int b){ if(b==0) return a; return GCD(b, a%b);}int main(){ ...
阅读全文
摘要:思想和超级台阶的思路一致,n状态可以从n-1状态和n-2状态得来,所以可以用递推解决另,当n比较大时候可能超出int。#includeusing namespace std;int main(){ long long a[51]; a[1]=1; a[2]=...
阅读全文
摘要:筛法 HDU 124MS#include #include #include using namespace std;const int Size=500000;int a[Size+1];int main(){ int m,n,i,j; for(int i=1; i#i...
阅读全文
摘要:思路:将所有数据从小到大排序,这样每次从序列的后面寻找答案ans,自然的确保了最大赌资性.接下来就要枚举其他三个数了 进而 判断 此时的ans是否存在 其他三个数 和 等于ans.而在三个数中至少有一个数在ans的前面 其他的两个数可能在ans的后面 因为存在负数.这样就可以先枚举两个 赌注 进而第...
阅读全文
摘要:DFS#include#include#includeusing namespace std;int knight[8][8];// 各点到起点的最短距离int x[8]={-2, -1, 1, 2, -2, -1, 1, 2};int y[8]={-1, -2, -2, -1, 1, 2, 2, ...
阅读全文
摘要:总结:①在读取数据处理空行上将房子之间的关系当做字符串输入当读入到一个字符串其内容为空时即空行停止输入。从字符串中读取数据时用sscanf()即可 。②广度优先搜索各个房间到ET房间的最短距离 。③深度优先搜索枚举每个房间如果搜索不到ET房间则为并经之路 并更新距离ET房间最近的房间 。#inclu...
阅读全文
摘要:#include#include#includeusing namespace std;bool g[26][26];int used[26];int n;//id 是当下着色结点 color是限制的颜色数量bool dfs(int id, int color){ bool flag;...
阅读全文
摘要:这个和上一道HDU 3199 Hamming Problem是类似的,有了思路就开始码代码了,可是!序数词的写法不对(代码注释部分)又上网普及了序数词的写法···搜到其他解题报告 其中有把这道题分类为DP的,最优子结构?无后效性?还有“寻找丑数问题” 详情点这里。#include#includeus...
阅读全文
摘要:应该不是数论···逻辑思维?找规律?暂且放到支个分类下···我的理解:数组 num表 保存 只有P1 P2 or P3的因子的 常数 并按递增顺序。通过已有的常数 每次循环相应的乘以P1 P2 P3, 就保证了表中的 常数 的因子排他性。也可以 手推+程序显示 探究其规律。#includeusing...
阅读全文
摘要:C/C++函数,比较两个字符串设这两个字符串为str1,str2,若str1==str2,则返回零;若str1>str2,则返回正数;若str1#include#include#includeusing namespace std;mapM;int main(){ M["zero"]=...
阅读全文
摘要:这里可以先将方程化简为a*x1^2+b*x2^2=-(c*x3^2+d*x4^2);然后再利用哈希表将方程的左侧用两层循环 把取值存起来最后再通过两层循环寻找和右侧相等的 左侧函数的值的个数 并累加求得Answer其中具体细节参考代码#include#include#includeusing nam...
阅读全文
摘要:#include#include#includeusing namespace std;const int Size = 1000000;int Hash[Size+1];int main(){ int n, m, num; while(cin>>n>>m) ...
阅读全文
摘要:#include#include#includeusing namespace std;struct node{ int s, e, w; node(int ss, int ee, int ww):s(ss),e(ee),w(ww){} bool opera...
阅读全文
摘要:连着三天做并查集了,一天一道,效率低呀···并查集之后是最小生成树再之后是最短路径,回学校之前把图论基本算法过一遍吧。回学校还要复习DSA因为开学就是乙级PAT了。当然英语和健身也不能落下。这道题要考虑的地方有①空树②无环③非森林④1 1 0 0 不是树 不能自己指向自己#include#inclu...
阅读全文

浙公网安备 33010602011771号