08 2017 档案

摘要:https://www.luogu.org/problem/show?pid=1101 很恶心的代码 就是八个方向都搜索 #include<bits/stdc++.h> using namespace std; int n; char s[120][120],t[120][120];//一个是刚开始 阅读全文
posted @ 2017-08-31 16:32 Draymonder 阅读(173) 评论(0) 推荐(0)
摘要:https://www.luogu.org/problem/show?pid=1219 经典问题,搜索一遍过。 重点是判断皇后能否在map[x][y]放下的条件 因为是dfs的时候过程中 x 是递增的 所以不需要 判断x轴了 判断Y轴:开一个数组y[20] 若皇后在map[x][y]放下就 y[y] 阅读全文
posted @ 2017-08-31 15:09 Draymonder 阅读(185) 评论(0) 推荐(0)
摘要:感觉这个题 是真的恶心 本来单纯就递归写,发现好难 后来用数组记录 然后考虑 指数为 奇和偶数 分别 <0 和 > 进制的情况 其实 用进制数为3 大概讨论四种情况就可以了 由于最近就是在划水,就随便写了写代码 也没好好修改,大概过了 #include<bits/stdc++.h> using na 阅读全文
posted @ 2017-08-30 14:03 Draymonder 阅读(286) 评论(0) 推荐(0)
摘要:题意 : 英语不好要遭殃。。。 给你一个图,找最短路。但是有个非一般的的条件:如果a,b之间有路,且你选择要走这条路,那么必须保证a到终点的所有路都小于b到终点的一条路。问满足这样的路径条数 有多少。。。就这个条件,看懂的时候估计都个把小时了 简化一下 a b之间如果有路 就是 1 -> 2 大于 阅读全文
posted @ 2017-08-30 11:20 Draymonder 阅读(203) 评论(0) 推荐(0)
摘要:本来我写的对的 我就多手写了个 ios::sync_with_stdio(false); 我程序里面用了cin 还有scanf 本来想偷偷懒 我就说 我查了半天错 根本找不到的啊... 后来交了几次 发现一直有RE 才发现...... 我好笨 //最短路 dijkstral #include<bit 阅读全文
posted @ 2017-08-26 15:44 Draymonder 阅读(260) 评论(0) 推荐(0)
摘要:倒腾了一个小时 自己也没去看网上的 总算自己能写出来模板了 kruskal prim 阅读全文
posted @ 2017-08-26 15:02 Draymonder 阅读(187) 评论(0) 推荐(0)
摘要:详细见:http://blog.csdn.net/nk_test/article/details/46242401 #include<bits/stdc++.h> using namespace std; const int maxn = 1e7; bool vis[maxn]; int prime 阅读全文
posted @ 2017-08-25 15:38 Draymonder 阅读(301) 评论(0) 推荐(0)
摘要:Two Paths Problem Description You are given a undirected graph with n nodes (numbered from 1 to n) and m edges. Alice and Bob are now trying to play a 阅读全文
posted @ 2017-08-25 10:13 Draymonder 阅读(248) 评论(0) 推荐(0)
摘要:快速读入? 不知道 反正只是贴过来的 以后或许会用到? #define FI(n) FastIO::read(n) namespace FastIO { const int SIZE = 1 << 16; char buf[SIZE], obuf[SIZE], str[60]; int bi = S 阅读全文
posted @ 2017-08-24 22:01 Draymonder 阅读(390) 评论(0) 推荐(0)
摘要:Schedule Problem Description There are N schedules, the i-th schedule has start time si and end time ei (1 <= i <= N). There are some machines. Each t 阅读全文
posted @ 2017-08-24 21:46 Draymonder 阅读(331) 评论(0) 推荐(0)
摘要:这种博弈题 都是打表找规律 可我连怎么打表都不会 这个是凑任务的吧....以后等脑子好些了 再琢磨吧 就是斐波那契数列中的数 是必败态 #include<bits/stdc++.h> using namespace std; map<long long ,int> mp; void init() { 阅读全文
posted @ 2017-08-23 13:22 Draymonder 阅读(194) 评论(0) 推荐(0)
摘要:Numbers Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 514 Accepted Submission(s): 270 Problem 阅读全文
posted @ 2017-08-23 10:51 Draymonder 阅读(140) 评论(0) 推荐(0)
摘要:A. Chess Tourney Berland annual chess tournament is coming! Organizers have gathered 2·n chess players who should be divided into two teams with n peo 阅读全文
posted @ 2017-08-22 11:18 Draymonder 阅读(238) 评论(0) 推荐(0)
摘要:本来刚开始还是想用每一位 -1的个数 然后再乘以10 不断累加 后来发现 完全不是这回事啊 因为本身就是0 和 1 所以只要记录出现的最大的数字 就是答案 因为 n >= 1 // 所以不需要考虑 0 也是1的情况 #include<bits/stdc++.h> using namespace st 阅读全文
posted @ 2017-08-21 22:33 Draymonder 阅读(127) 评论(0) 推荐(0)
摘要:就很简单很简单的dp 只能从右或者从下走 所以 dp方程直接看下面公式吧 反正也不难 #include<bits/stdc++.h> using namespace std; const int maxn = 550; int s[maxn][maxn]; int dp[maxn][maxn]; i 阅读全文
posted @ 2017-08-21 22:22 Draymonder 阅读(174) 评论(0) 推荐(0)
摘要:基本的矩阵乘法 中间for(int j=0;i<n;i++) //这里写错了 应该是j<n 晚上果然 效率不行 等会早点儿睡 //矩阵乘法 就是 两个矩阵 第一个矩阵的列 等与 第二个矩阵的行相同 // 然后ans[i][j] += a[i][k] * b[k][j]; #include<bits/ 阅读全文
posted @ 2017-08-21 22:15 Draymonder 阅读(229) 评论(0) 推荐(0)
摘要:之前一直没敢做矩阵一类的题目 其实还好吧 推荐看一下 : http://www.cnblogs.com/SYCstudio/p/7211050.html 但是后面的斐波那契 推导不是很懂 前面讲的挺好的 后来看到了 http://blog.csdn.net/flyfish1986/article/d 阅读全文
posted @ 2017-08-21 21:47 Draymonder 阅读(204) 评论(0) 推荐(0)
摘要:基础 矩阵乘法 关于 快速幂已经了解了 所以现在就是 矩阵快速幂了 相同的套路 只不过是运用到矩阵上面了; 推荐blog :http://www.cnblogs.com/SYCstudio/p/7211050.html 然后自己手写了两遍 之前一直不敢接触 其实接触了才发现 大概也不是很难的东西。 阅读全文
posted @ 2017-08-21 16:27 Draymonder 阅读(162) 评论(0) 推荐(0)
摘要:复杂度 O(n+m) 这个博主写的蛮不错的 http://www.cnblogs.com/SYCstudio/p/7194315.html 1.本文中,所有的字符串从0开始编号2.为了在程序中表示方便,在接下来的说明中,next[i]=0表示最长相同前缀后缀长度为1,即真实的最长相同前缀后缀=nex 阅读全文
posted @ 2017-08-21 15:17 Draymonder 阅读(145) 评论(0) 推荐(0)
摘要:题目链接 : http://acmoj.shu.edu.cn/problem/419/ 欧拉函数ϕ(n) 被定义1~n中与n互质的数的个数。例如ϕ(5)=4,因为1,2,3,4这四个数字与5互质。 12的因子全部因子是1,2,3,4,6,12φ(1)=1 φ(2)=1 φ(3)=2 φ(4)=2 φ 阅读全文
posted @ 2017-08-21 13:17 Draymonder 阅读(279) 评论(0) 推荐(0)
摘要:一直Runtime error 后来发现数组开小了 调了半天 大概两种写法吧 第一种是枚举每个值 把他的因子都记录 最后从最大的因子 倒着数 这样子 #include<bits/stdc++.h> using namespace std; const int maxn = 1000000+100; 阅读全文
posted @ 2017-08-21 10:37 Draymonder 阅读(170) 评论(0) 推荐(1)
摘要:没想到居然可以O(n3)暴力过 就是大概之前的 最大连续子序列和 加成2维度了 枚举起始列 和 终止列 然后计算从1到n行最大的子矩阵的和 注意n 和 m 的输入顺序!! #include<bits/stdc++.h> using namespace std; typedef long long l 阅读全文
posted @ 2017-08-21 09:45 Draymonder 阅读(244) 评论(0) 推荐(0)
摘要:1103 N的倍数 一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍数。 例如:N = 8,数组A包括:2 5 6 3 18 7 11 19,可以选2 6,因为2 + 6 = 8,是8的倍数。 Input 第1行:1个数N,N为数组的长度,同时也是要求的倍数。(2 <= N <= 5 阅读全文
posted @ 2017-08-20 15:02 Draymonder 阅读(374) 评论(0) 推荐(0)
摘要:A. Generous Kefa One day Kefa found n baloons. For convenience, we denote color of i-th baloon as si — lowercase letter of the Latin alphabet. Also Ke 阅读全文
posted @ 2017-08-19 11:48 Draymonder 阅读(280) 评论(0) 推荐(0)
摘要:1043 幸运号码 1个长度为2N的数,如果左边N个数的和 = 右边N个数的和,那么就是一个幸运号码。 例如:99、1230、123312是幸运号码。 给出一个N,求长度为2N的幸运号码的数量。由于数量很大,输出数量 Mod 10^9 + 7的结果即可。 Input 输入N(1<= N <= 100 阅读全文
posted @ 2017-08-18 16:03 Draymonder 阅读(389) 评论(0) 推荐(1)
摘要:蚂蚁这道题 就是 不管两只蚂蚁相撞 他们会朝自己的反方向走 不过可以这么想 有蚂蚁1 和 蚂蚁2 并且相向而行 如果撞了以后 蚂蚁1和蚂蚁2 就往回走 ,这里可以理解成蚂蚁1,蚂蚁2 继续朝自己的方向走 因为我们是不关心 具体蚂蚁的到达哪个端点的 #include <bits/stdc++.h> u 阅读全文
posted @ 2017-08-17 16:57 Draymonder 阅读(134) 评论(0) 推荐(0)
摘要:暴力水过 #include<bits/stdc++.h> using namespace std; const int maxn = 1e3+10; int s[maxn]; bool b_s(int l,int r,int t) { int ans = -1; while (l <= r) { i 阅读全文
posted @ 2017-08-17 15:54 Draymonder 阅读(132) 评论(0) 推荐(0)
摘要:暴力 打表过的 注意爆int 还有 7的倍数 和 数字中有7的 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e6+10; ll dp[maxn]; ll s[maxn]; v 阅读全文
posted @ 2017-08-17 15:36 Draymonder 阅读(254) 评论(0) 推荐(0)
摘要:没心情写数学题啦啊 好难啊 #include<bits/stdc++.h> using namespace std; set<int> s; set<int>::iterator it; int main () { s.clear(); for(int i=0;i*i<=1e9;i++) s.ins 阅读全文
posted @ 2017-08-17 15:19 Draymonder 阅读(154) 评论(0) 推荐(0)
摘要:通式: 其中p1, p2……pn为x的所有质因数,x是不为0的整数。 φ(1)=1(唯一和1互质的数(小于等于1)就是1本身)。 注意:每种质因数只一个。 比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/3)=4 若n是质数p的k次幂, ,因为除了p的倍数外,其他数都跟n互质。 阅读全文
posted @ 2017-08-17 13:16 Draymonder 阅读(198) 评论(0) 推荐(0)
摘要:给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。 Input 输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9) Output 输出一个数K,满足0 < K < N且K * M %  阅读全文
posted @ 2017-08-17 12:33 Draymonder 阅读(183) 评论(0) 推荐(0)
摘要:a:特殊密码锁 总时间限制:1000ms内存限制:1024kB描述 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态。 然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转。当然,如果你按的是最左或者最右边的按钮,该按钮只会影响到 阅读全文
posted @ 2017-08-17 10:01 Draymonder 阅读(723) 评论(0) 推荐(0)
摘要:感觉自己最近状态好差劲啊 做题都得提前看一下题解 不过这题也没那么难,可以大概知道的是 如果要满足代价最大,A【i】的值不是1就是B【i】 #include<bits/stdc++.h> using namespace std; int s[50010],dp[50010][2]; int main 阅读全文
posted @ 2017-08-16 22:19 Draymonder 阅读(147) 评论(0) 推荐(0)
摘要:区间dp 递推比递归的常数要小 所以还是尽量学会递推吧 看题解 各种恶心啊 有木有 还是视频讲的直接呃 不过就是讲的有点儿慢 链接:https://www.bilibili.com/video/av12159085/ #include<bits/stdc++.h> using namespace s 阅读全文
posted @ 2017-08-16 16:34 Draymonder 阅读(361) 评论(0) 推荐(0)
摘要:1009 数字1的数量 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。 例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。 Input 输入N(1 <= N <= 10^9) Output 输出包含1的个数 Input示例 阅读全文
posted @ 2017-08-16 14:54 Draymonder 阅读(179) 评论(0) 推荐(0)
摘要:求n的n次方的末尾数字 大概都知道暴力 模拟一下 但是 N 是10^9级别的 会T 所以用 快速幂 要是求n的阶乘就不行了呢 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int mod = 10; 阅读全文
posted @ 2017-08-15 21:30 Draymonder 阅读(126) 评论(0) 推荐(0)
摘要:每一个 2 与一个 5 相乘,结果就增加一个零。 所以求 n! 后面的连续零的个数,其实就是求其中相乘的数含有因子每对因子 2 与 5 的个数。 又因为从1到某个数,所含 2 的个数比 5 多,所以问题就可以进一步简化到求含有因子5的个数。 然后自己没写出来,没骨气的又看了别人的代码..GG啊 #i 阅读全文
posted @ 2017-08-15 21:21 Draymonder 阅读(142) 评论(0) 推荐(0)
摘要:从1到N 里 是2的倍数 有 N/2 个 然后大概看过这类的blog 所以运用容斥原理 直接计算 是 2 3 5 7 的个数都是多少 然后用N 减去 就是 不是2 3 5 7 的个数了 (离散好像也学过 奇加 偶减 #include <bits/stdc++.h> using namespace s 阅读全文
posted @ 2017-08-15 21:04 Draymonder 阅读(170) 评论(0) 推荐(0)
摘要:二分+sort 对于一个x 只需查找 数组中是否存在 k-x就可以确定 #include<bits/stdc++.h> using namespace std; int s[50010]; int b_s(int l,int r,int t) { int ans = 0; while (l <= r 阅读全文
posted @ 2017-08-15 16:08 Draymonder 阅读(176) 评论(0) 推荐(0)
摘要:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1087 暴力大法 #include<bits/stdc++.h> using namespace std; map <int,int>s; void solve() { in 阅读全文
posted @ 2017-08-15 15:19 Draymonder 阅读(191) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1085 唯一的坑点是 所有的数如果都可以求得的话 那么得不到的将是 sum+1 // 注意细节 #include<bits/stdc++.h> using namespace std; const int maxn 阅读全文
posted @ 2017-08-14 22:55 Draymonder 阅读(137) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1398 大概像是01背包 #include<bits/stdc++.h> using namespace std; const int maxn = 400; int dp[maxn]; int s[maxn]; 阅读全文
posted @ 2017-08-14 22:31 Draymonder 阅读(99) 评论(0) 推荐(0)
摘要:题目:给出一定(n)数量的砝码,每个砝码重a1,a2,a3。。。an, 问题:求出【1~sum】中(sum为各砝码总和)不能被称出的重量; 问题关键:天平两边都可以放砝码, 放在同一端:a[j+k]+=a[j] 不同端a[abs(j-k)]+=a[j] 假设原来的砝码都放在右端,则可以把新加的砝码放 阅读全文
posted @ 2017-08-14 22:14 Draymonder 阅读(194) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1171 01背包 #include<bits/stdc++.h> using namespace std; const int maxn = 1000*100 +100; int dp[maxn],v[5010]; 阅读全文
posted @ 2017-08-14 21:35 Draymonder 阅读(157) 评论(0) 推荐(0)
摘要:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1007 01背包//需要多做这种题 能看到题想到这个思路 如果sum为奇数 比如 sum=5,那么sum/2 就是2 所以 总共的sum -dp[sum/2] 就是较大的那一 阅读全文
posted @ 2017-08-14 16:18 Draymonder 阅读(195) 评论(0) 推荐(0)
摘要:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1086 思路 裸的多重背包 巩固一下刚学的骚操作 #include<bits/stdc++.h> using namespace std; const int maxn = 阅读全文
posted @ 2017-08-14 15:49 Draymonder 阅读(182) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=1014 思路 大概是裸的多重背包 复杂度 #include<iostream> #include<cstdio> #include<algorithm> #include<string.h> using namespace std; const 阅读全文
posted @ 2017-08-14 15:17 Draymonder 阅读(139) 评论(0) 推荐(0)
摘要:来源:http://acm.hdu.edu.cn/showproblem.php?pid=2082 qscvideo讲解:https://www.bilibili.com/video/av4356817/ 母函数 也就是所谓的生成函数 通过(1+x)(1+x+x2)将排列组合问题 换成求多项式系数的 阅读全文
posted @ 2017-08-14 12:56 Draymonder 阅读(185) 评论(0) 推荐(0)
摘要:来源:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1050 答案有两种形式1.正常的最大连续序列 即ans1 2.开始+末尾的连续的一段,去掉中间,中间为什么去掉呢,因为中间那段和为负数,只要求出负数最大的连续子序列去掉 阅读全文
posted @ 2017-08-14 11:09 Draymonder 阅读(158) 评论(0) 推荐(0)
摘要:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1183. 题意不再赘述。 分析:大概和LCS差不多的吧 但是我用LCS转换貌似错了 搜的网上的题解 大概就是 如果(dp[i-1][j-1] dp[i-1][j] dp[i] 阅读全文
posted @ 2017-08-14 09:42 Draymonder 阅读(178) 评论(0) 推荐(0)
摘要:1001 小C的倍数问题 题意: 根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数。反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数。 现在给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数 的充分必要条件是每一位加起来的和是B的倍数。 我 阅读全文
posted @ 2017-08-13 22:40 Draymonder 阅读(291) 评论(0) 推荐(0)
摘要:来源:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1163 这个题 自己想了想 mmp 感觉一做贪心题只会用 sort 忽略了 优先队列 这题搜了题解后 大概明白了 就是建立一个最小堆 把cost 压入最小堆 如果当前时 阅读全文
posted @ 2017-08-13 11:03 Draymonder 阅读(225) 评论(0) 推荐(0)
摘要:来源:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1099 前天没睡好 昨天做题闷闷沉沉的 好多一眼题 都瞎做了 这题今天早上发现其实 让执行空间大的 存储空间小的 先存储 这样有效空间就最大就好了 #include<b 阅读全文
posted @ 2017-08-13 10:29 Draymonder 阅读(245) 评论(0) 推荐(0)
摘要:来源:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1117 挑战原题吧 大概 每次挑选最小的两个,合起来 #include <bits/stdc++.h> using namespace std; int main () 阅读全文
posted @ 2017-08-12 16:14 Draymonder 阅读(217) 评论(0) 推荐(0)
摘要:来源:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 首先按照开始时间从小到大排序. 其实只要维护一个结束时间的最小堆,每次比较开始时间和堆中最小时间的大小,如果比它大就放入堆中并且时间就要变成当前任务的结束时间, 阅读全文
posted @ 2017-08-12 16:07 Draymonder 阅读(203) 评论(0) 推荐(0)
摘要:1133 不重叠的线段 X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。 例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。 Input 第1行:1个数N,线段的数量(2 <= N <= 1000 阅读全文
posted @ 2017-08-12 13:01 Draymonder 阅读(225) 评论(0) 推荐(0)
摘要:1432 独木舟 n个人,已知每个人体重。独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟? Input 第一行包含两个正整数n (0<n<=10000)和m (0<m<=2000000000),表 阅读全文
posted @ 2017-08-12 12:49 Draymonder 阅读(376) 评论(0) 推荐(0)
摘要:1091 线段的重叠 X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。 给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。 Input 第1行:线段的数量 阅读全文
posted @ 2017-08-12 12:33 Draymonder 阅读(363) 评论(0) 推荐(0)
摘要:1344 走格子 有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去。机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值。如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] < 0,走到这个格子需要消耗相应的能 阅读全文
posted @ 2017-08-12 12:18 Draymonder 阅读(227) 评论(0) 推荐(0)
摘要:1181 质数中的质数(质数筛法) 如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。 Input 输入一个数N(N <= 10^6) Ou 阅读全文
posted @ 2017-08-11 12:19 Draymonder 阅读(288) 评论(0) 推荐(0)
摘要:参考文献: https://wenku.baidu.com/view/b6aed86baf1ffc4ffe47ac92.html #include <bits/stdc++.h> using namespace std; const int maxn = 100; double a[maxn][ma 阅读全文
posted @ 2017-08-10 15:26 Draymonder 阅读(376) 评论(0) 推荐(0)
摘要:因为数据比较小 所以flyod spfa dijkstra 多可以过 Floyd #include <bits/stdc++.h> using namespace std; const int INF = 0x3f3f3f3f; const int maxn = 210; int s[maxn][m 阅读全文
posted @ 2017-08-10 13:56 Draymonder 阅读(171) 评论(0) 推荐(0)
摘要:RMQ 感觉线段树 也就那样儿 #include <bits/stdc++.h> using namespace std; const int maxn = 10010; int s[maxn<<2]; void up(int rt){ s[rt] = max(s[rt<<1] , s[rt<<1| 阅读全文
posted @ 2017-08-09 20:43 Draymonder 阅读(146) 评论(0) 推荐(0)
摘要:#include <bits/stdc++.h> using namespace std; int n; const int maxn = 1e5+10; bool s[maxn]; void is_prime() { memset(s,true,sizeof(s)); s[0] = s[1] = 阅读全文
posted @ 2017-08-09 16:18 Draymonder 阅读(205) 评论(0) 推荐(0)
摘要:1081 子段求和 给出一个长度为N的数组,进行Q次查询,查询从第i个元素开始长度为l的子段所有元素之和。 例如,1 3 7 9 -1,查询第2个元素开始长度为3的子段和,1 {3 7 9} -1。3 + 7 + 9 = 19,输出19。 Input 第1行:一个数N,N为数组的长度(2 <= N  阅读全文
posted @ 2017-08-09 15:42 Draymonder 阅读(328) 评论(0) 推荐(0)
摘要:#include <bits/stdc++.h> using namespace std; int extgcd (int a,int b,int &x,int &y){ int d = a; if(b != 0){ d = extgcd(b,a%b,y,x); y -= (a / b)*x; } 阅读全文
posted @ 2017-08-09 15:00 Draymonder 阅读(202) 评论(0) 推荐(0)
摘要:思路传送门 :http://blog.csdn.net/kk303/article/details/9629329 n里面挑选m个 可以递推从n-1里面挑m个 然后n-1里面的x 可以转换成 n里面的x 的公式 x = (x+m)%n; #include <bits/stdc++.h> using 阅读全文
posted @ 2017-08-09 11:09 Draymonder 阅读(130) 评论(0) 推荐(0)
摘要:1.题意描述 本题大致意思是讲:给定一个广场,把它分为M行N列的正方形小框。现在给定有K个拉拉队员,每一个拉拉队员需要站在小框内进行表演。但是表演过程中有如下要求: (1)每一个小框只能站立一个拉拉队员; (2)广场的第一行,最后一行,第一列,最后一列都至少站有一个拉拉队员; (3)站在广场的四个角 阅读全文
posted @ 2017-08-08 10:59 Draymonder 阅读(240) 评论(0) 推荐(0)
摘要:看卿学姐视频学到的题目 kruskal算法实现最小生成树 #include<bits/stdc++.h> using namespace std; const int maxn = 105; typedef long long ll; int n,m; struct edge{ int from , 阅读全文
posted @ 2017-08-07 22:53 Draymonder 阅读(195) 评论(0) 推荐(0)
摘要:const int maxn = ; int fa[maxn]; int fi(int x) { return fa[x]==x?x:fa[x]=fi(fa[x]); } void union(int x,int y) { int fx = fi(x),fy = fi(y); if(fx != fy 阅读全文
posted @ 2017-08-07 19:36 Draymonder 阅读(159) 评论(0) 推荐(0)
摘要:1072 威佐夫游戏 有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出2堆石子的数量,问最后谁能赢得比赛。 例如:2堆石子分别为3颗和5颗。那么不论A怎样拿,B都有 阅读全文
posted @ 2017-08-07 10:48 Draymonder 阅读(153) 评论(0) 推荐(0)
摘要:1069 Nim游戏 有N堆石子。A B两个人轮流拿,A先拿。每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N及每堆石子的数量,问最后谁能赢得比赛。 例如:3堆石子,每堆1颗。A拿1颗,B拿1颗,此时还剩1堆,所 阅读全文
posted @ 2017-08-07 10:24 Draymonder 阅读(361) 评论(0) 推荐(0)
摘要:1066 Bash游戏 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 有一堆石子共有N个。A B两个人轮流拿,A先拿。每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N和K,问最后谁能赢得比赛。 例如N = 阅读全文
posted @ 2017-08-06 19:59 Draymonder 阅读(193) 评论(0) 推荐(0)
摘要:1058 N的阶乘的长度 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。 Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Out 阅读全文
posted @ 2017-08-06 16:25 Draymonder 阅读(166) 评论(0) 推荐(0)
摘要:1057 N的阶乘 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 输入N求N的阶乘的准确值。 Input 输入N(1 <= N <= 10000) Output 输出N的阶乘 Input示例 5 Output示例 120 #include <bits/stdc++.h 阅读全文
posted @ 2017-08-06 16:02 Draymonder 阅读(122) 评论(0) 推荐(0)
摘要:1027 大数乘法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个大整数A,B,计算A*B的结果。 Input 第1行:大数A 第2行:大数B (A,B的长度 <= 1000,A,B >= 0) Output 输出A * B Input示例 123456 23 阅读全文
posted @ 2017-08-06 15:21 Draymonder 阅读(170) 评论(0) 推荐(0)
摘要:/*RMQ 更新最小值操作 By:draymonder*/ #include <iostream> #include <cstdio> using namespace std; const int mod = 1e9 + 7; const int maxn = 1 << 17; const int 阅读全文
posted @ 2017-08-02 15:14 Draymonder 阅读(365) 评论(0) 推荐(0)