陆历川
陆历川在江湖
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
展开
-
运动会 循环图
/*运动会问题:某个项目的n个选手进行循环比赛,其中n = 2m次幂,要求每名选手要与其他n-1名选手都赛一次。每名选手每天比赛一次,循环赛共进行-1天,要求每天没有选手轮空。输入2输出1 2 3 42 1 4 33 4 1 24 3 2 1*/#include#include#include#include#include#includeusing namesp原创 2017-09-04 18:57:47 · 314 阅读 · 0 评论 -
UVALive - 5059
一眼看过去就是SG但是再看一眼数据范围,WC,打表的话数组开不到哇想啊想,想啊想,晚上刷题好痛苦呀,想不出来呀,一看题解,打表找规律,WC,这也可以,可是我懒啊,不懒的话也可以打表找一下打表找规律的话直接找板子稍微改一下就可以了,稍微改还不会,那就再好好看看SG吧总之规律是偶数 SG(n) = n >> 1奇数 SG(n) = SG(n>>1)然后当你知道了规律之后,你就开...原创 2018-04-22 21:20:46 · 249 阅读 · 0 评论 -
POJ 2524
并查集#include<cstdio>#include<iostream>#include<cstring>using namespace std;const int maxn = 50000 + 10;int p[maxn];bool vis[maxn];int tofind(int x){ if(x == p[x]) return p[...原创 2018-04-22 21:44:12 · 215 阅读 · 0 评论 -
CodeForces - 95C 最短路
原来做的时候,做到最后忘了找不到要输出-1还是很粗心#include<queue>#include<cstdio>#include<vector>#include<cstring>#include<iostream>using namespace std;#define LL long longconst int maxn ...原创 2018-04-30 17:35:11 · 298 阅读 · 0 评论 -
玲珑学院1087
博弈题解类似题目的题解本题的题解#include<bits/stdc++.h>using namespace std;const int maxn=1<<21;int n,a[maxn];int main(){ int T;cin>>T; while (T--) { scanf("%d",&n); int k=0,sg=0,ans...转载 2018-04-23 21:22:04 · 200 阅读 · 0 评论 -
CodeForces - 934C
解题思路让我想起了 HDU6058#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn = 2000 + 10;int one[maxn], two[maxn];int a[maxn];int main(){ int n;...原创 2018-04-30 20:39:12 · 211 阅读 · 0 评论 -
HDU1517 博弈
很长见识转载一位博主的讲解,个人认为他讲的很好,对于必胜态和必败态讲解的很到位下面是博主的链接HDU 1517 讲解转载 2018-04-30 20:56:47 · 236 阅读 · 0 评论 -
HYSBZ - 4195 并查集
第一次做的时候一看数据范围是1e9,就不打算用并查集做第一次想到的是用bitset来做,但是超时了,很难受后来看了其他博主的文章才获得启发,这里使用了Hash,对于每一个数重新定义自己的顺序利用一个map可以很容易的进行Hash#include<map>#include<bitset>#include<cstdio>#include<iostream...原创 2018-05-02 13:55:25 · 295 阅读 · 0 评论 -
HDU1811
拓扑排序和并查集的结合拓扑排序来进行排序如果同时出现了两个以上的节点入度为0,代表这几个节点的顺序是不确定的也就是信息不完善如果最后出现了有些节点的入度不是零,说明存在了环,也就是出现了冲突并查集把相等的节点归并到一个集合,可以把多个节点当成一个节点来处理#include<queue>#include<cstdio>#include<vector>#inc...原创 2018-05-02 19:15:40 · 641 阅读 · 1 评论 -
SDUT 3903
一个零一背包关键是如何去排序我们的目的是经可能多的得分,所以要用贪心策略去排序贪心的方向是,让掉分速度最快的题尽早做,原因是他分数掉的最快,做的越晚收益越低所以这里的贪心就类似高中的加速度 △v/△t按照排序找出来思考过程中代价最大的题目,先做它就可以了#include<cstdio>#include<cstring>#include<iostream>#...原创 2018-05-03 16:41:05 · 202 阅读 · 0 评论 -
一些字符串的常用函数
char st[100]; 1. 字符串长度 strlen(st); 2. 字符串比较 strcmp(st1,st2); //1大于 0等于 -1小于 strncmp(st1,st2,n); 把st1,st2的前n个进行比较。 3. 附加 strcat(st1,st2); strncat(st1,st2,n); n表...原创 2018-05-03 21:27:58 · 253 阅读 · 0 评论 -
CodeForces - 699D
利用并查集判断环和树第一次两个节点判断是,如果不在一个树上就合并,如果出现两个点在一个树上就说明出现了环#include<iostream>#include<cstdio>using namespace std;const int maxn = 200000 + 10;int a[maxn], p[maxn];int tofind(int x){ if(x...原创 2018-04-27 16:10:05 · 221 阅读 · 0 评论 -
poj2492
#include<cstdio>#include<iostream>using namespace std;const int maxn = 10000 + 10;int p[maxn];///p 代表祖先int sex[maxn];/// sex 代表性别int tofind(int x){ if(p[x] == x) return x; ...原创 2018-04-28 21:41:46 · 220 阅读 · 0 评论 -
poj 1611
并查集入门一个社团的合并一次,最后统计和0是在相同集合的人#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int maxn = 30000 + 10;int p[maxn];int a[maxn];int tofind(int x){ ...原创 2018-04-22 20:27:07 · 185 阅读 · 0 评论 -
CodeForces - 605A
每次可以把一辆车放在开头或者结尾问最少多少次操作让这个数列变成递增数列既然要保持最少操作,那就需要让最长的上升序列的数保持不变,让其他数进行改变#include <iostream>#include <cstdio>using namespace std;const int maxn = 100000 + 10;int a[maxn], b[maxn];int m...原创 2018-04-17 21:37:48 · 259 阅读 · 0 评论 -
HDU 4925 找规律
找规律#include <iostream>#include <cstdio>#include <algorithm>#define LL long longusing namespace std;int main(){ LL T, N, M; scanf("%lld", &T); while(T--){ ...原创 2018-04-17 20:42:26 · 530 阅读 · 0 评论 -
HDU 6186 前缀后缀
题目CS CourseTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 595 Accepted Submission(s): 290Problem DescriptionLittle A h原创 2017-09-04 21:20:09 · 465 阅读 · 0 评论 -
HDU 6205 card card card
card card cardTime Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1317 Accepted Submission(s): 598Problem DescriptionAs a fan of原创 2017-09-12 20:06:31 · 213 阅读 · 0 评论 -
滑雪
题目滑雪的场地都是从高地势到低地势,现在陆历川在一块滑雪场,现在他想知道他在哪一个地方开始滑雪可以滑的距离最长,注意,必须从高的地势向低的地势走输入 第一行两个数n,m代表矩阵的大小 接下来n行,每行m个数,数组中每个数字代表点的高度输出 最长的滑行距离样例输入5 51 2 3 4 516 17 18 19 615 24 25 2原创 2017-10-11 20:57:22 · 289 阅读 · 0 评论 -
关于数论的一些知识点,慢慢积攒
数论的东西太多了,决定把一些遇到的定理在这里整理一下L(x) 求的是 LCM(1,2,3.....x)LCM 求最小公倍数L(1) = 1L(x+1) = { L(x) * p if x+1 is a perfect power of prime p { L(x) otherwisePI的定义方式const double PI = acos(-1)...原创 2018-03-15 16:22:14 · 322 阅读 · 1 评论 -
LightOJ 1289
解题思路 用到了数论L(x) 求的是 LCM(1,2,3.....x)LCM 求最小公倍数L(1) = 1L(x+1) = { L(x) * p if x+1 is a perfect power of prime p { L(x) otherwise上面的知识点,在纸上推演一下就可以得出结论,根据求最小公倍数的公式,分子分母在每次遇到非素数的时候能...原创 2018-03-18 16:32:07 · 341 阅读 · 0 评论 -
poj 2960
点击打开链接上面链接是一个博主讲解的SG函数,还不错这里引用一下这道题是SG的裸题,没什么可说的用来做模板的#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int maxn = 10000 +10;...原创 2018-03-25 15:59:51 · 184 阅读 · 0 评论 -
HDU4734 F(x)
数位DP讲一下具体思路,自己是看了kuangbin的板子来做的DP的关键在于如何去寻找转移方程,本道题用到了一种相减的思路A,B分别代表题目描述的变量DP[pos][sum] pos 不用多说就是数位, sum这里不是指一个数的和,这里的sum指的是距离凑满F(A)还需要多少数这样子转移方程就可以记忆化了,为什么呢?当第一步的时候指的是DP[pos][F(A)],但是继续往下dfs,因为每一步都要...原创 2018-03-25 16:00:04 · 308 阅读 · 0 评论 -
HDU 6231 二分
看了第一眼,脑子里只有暴力第二眼还是暴力,果断暴力T一发然后开始想优化成nlogn,采用枚举A[]数组里面的数,当然是二分枚举两个坑点(xxxxx)XXXX(xxxxx)上面三个区间我们命名区间一,区间二,区间三假设区间三正好满足比枚举的数大且个数刚刚好的一个区间1. 计算区间的时候无脑区间一*区间三,果断WA,因为区间枚举出现了重复给一个12个数的数组 1 1 1 1 3 1 3 3 1 4 1...原创 2018-04-14 16:46:23 · 235 阅读 · 0 评论 -
SGU 499
思路主要是枚举因子归为优美的暴力横向不通的时候,我们可以采用纵向枚举#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1000000 + 10;int ans[maxn...原创 2018-04-14 16:52:38 · 203 阅读 · 0 评论 -
POJ 2253
floy 变形记最短路的又一种玩法#include <cstdio>#include <cstring>#include <string>#include <iostream>#include <stack>#include <queue>#include <vector>#include &原创 2018-04-14 16:55:03 · 124 阅读 · 0 评论 -
HDU 1087
DP#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;int a[1005];int dp[1005];int main(){ int n; int i, j; while (scanf("%d", &n) != EOF &&...原创 2018-04-14 16:57:31 · 163 阅读 · 0 评论 -
Linux 基础学习笔记 For lulichuan
标题Linux 基础命令整理笔记文件管理命令:打开目录cd /directory1//directory2 //如果在根目录可以不加开头的斜杠cd /etc/sysconfig //此命令可以进入etc目录中的sysconfig目录创建文件、创建目录touch filename //创建filename文件touch -d "20190521 13:00:00" filename ...原创 2019-05-22 17:17:20 · 306 阅读 · 0 评论