洛谷:P2814 家谱(普及/提高-,并查集)

题目:分析:既然出到了并查集这里,我想到的就是在模板上进行修改。体会到了并查集模板代码的一个精华特点:我存放的值可以不是最终结果,也没必要是最终结果,我可以查就行啦。代码:#include<bits/stdc++.h>using namespace std;map<string,int> m;string A[50005];int cnt=1;string ss;string f(string s){ if(s==A[m[s]]) return s; re
分类: 其他 发布时间: 09-07 22:24 阅读次数: 0

洛谷:P3879 [TJOI2010]阅读理解(字典树)

题目:分析:本来用的map。结果内存不够,代码:#include<bits/stdc++.h>using namespace std;map<string,int> A[1005];int main(){ int m,n; cin>>m; for(int i=0;i<m;i++) { int c; cin>>c; for(int j=0;j<c;j++) { string s; cin>>s
分类: 其他 发布时间: 09-07 22:23 阅读次数: 0

洛谷:P1621 集合(素数相关)

题目:分析:虽然我第一次想就想到了,而且和题解差不多,但是在写代码过程中,漏洞百出,体现出自己错误+垃圾的代码水平。代码:#include<bits/stdc++.h>using namespace std;int A[100005];int main(){ memset(A,-1,sizeof(A)); for(int i=2;i<=100001;i++) { if(A[i]!=-1) continue; for(int j=2;j*i<=100004
分类: 其他 发布时间: 09-07 22:23 阅读次数: 0

洛谷:P1469 找筷子(异或)

题目:分析:用map:#include<bits/stdc++.h>using namespace std;map<int,int> A;int main(){ int m; cin>>m; for(int i=0;i<m;i++) { int c; cin>>c; A[c]=(A[c]+1)%2; } for(int i=1;;i++) if(A[i]) { cout<<i; return 0
分类: 其他 发布时间: 09-07 22:23 阅读次数: 0

洛谷:P1029 最大公约数和最小公倍数问题(总结一个对数的搜素)

题目:分析:之前做过吧:代码:无。懒得写。只是想强调一下,选数中充分利用统计个数。n个x相同,统计个数即可。不同,统计个数即可。成一个c的事情。当然了,可以不统计个数吧。直接来个last就行吧。嗯,确实是这样的。...
分类: 其他 发布时间: 09-07 22:23 阅读次数: 0

洛谷:P1414 又是毕业季II(数学,普及/提高- )

题目:分析:我想的是以素数的筛法计算以i为共因数的有哪些数?然后如果在给出的数中,进行计数。这样之后,超时了。。。而且最后的输出处理不对,比如以5为公因数计数为x个,而x+1无,那么x+1的结果也应该是5.代码:#include<bits/stdc++.h>using namespace std;int A[10005];//原始 map<int,int> mm;int cnt[10005];//int D[10005];int main(){ int m
分类: 其他 发布时间: 09-07 22:22 阅读次数: 0

洛谷:P2660 zzc 种田(数学,递归)

题目:分析:我想的是每次拆去最大的正方形。看题解也没证明。代码:#include<bits/stdc++.h>using namespace std;long long f(long long x,long long y){ //x大 y 小 if(x<y) swap(x,y); if(x==y) return 4*x; if(x%y==0) return x/y*y*4; return x/y*y*4+f(x%y,y);}int main(){ lon
分类: 其他 发布时间: 09-07 22:22 阅读次数: 0

洛谷:P3913 车的攻击(普及-)------想用的map和set原来还可以这样替换,而且时间复杂度降了下来。

题目:分析:set统计。即可。稍想一下就出来了。代码:这都超时?#include<bits/stdc++.h>using namespace std;int main(){ int m,n; cin>>m>>n; set<int> s1; set<int> s2;int a,b; for(int i=0;i<n;i++) { scanf(%d %d,&a,&b); s1.insert(a);
分类: 其他 发布时间: 09-07 22:22 阅读次数: 0

洛谷:P1403 [AHOI2005]约数研究(数学,)

题目:分析:我想的是一个dp,i*j=k那么结果为,A【i】+A【j】-A[i-j的公因数],貌似不可行。以4为因数的个数,除以4就可以啦,这样试试:代码:就这么简单,,无语。#include<bits/stdc++.h>using namespace std;int main(){ int m; int ans=0; cin>>m; for(int i=1;i<=m;i++) { ans+=m/i; } cout<<ans;}
分类: 其他 发布时间: 09-07 22:22 阅读次数: 0

洛谷:P1246 编码(对组合数的另一种理解)

题目:分析:首先明确这不是进制问题。想进行一次打表。打表成功,代码:#include<bits/stdc++.h>using namespace std;map<string,int> m;int ans=1;void f(int rest,char c,string s){ if(rest==0) { m[s]=ans; ans++; return; } if(c==z+1) return; for(int i=0;i+c+rest-1&l
分类: 其他 发布时间: 09-07 22:21 阅读次数: 0

洛谷:P2638 安全系统(普及+/提高,数学的组合问题)

题目:分析:到底是脑力下降到无法挽回的地步,还是不愿意去思考?结合题解自己才想出来:、注意,是全部放进去啊!那么这里就有i=min(i,2n),j=min(j,2n),需要预处理一下子。0和1放进去可以是相互独立的。因此相乘:我开始理解错了,不是乘完再乘以阶乘,而是乘之前就要有阶乘了。问题转化为求g,g表示的是i个球放进n个盒子中的方法数,其中球是相同的,但是盒子是有编号不同的。当然也可以理解为盒子是相同的,最后结果再乘以盒子数目的阶乘吧!问题:i个球放进n个盒子中,i个球都要放,
分类: 其他 发布时间: 09-07 22:21 阅读次数: 0

洛谷:P2926 [USACO08DEC]Patting Heads S(数学。普及/提高-)

题目:代码:我是用之前的数组前递和排序,替换:map和set:竟然超时了。#include<bits/stdc++.h>using namespace std;int A1[100001],A2[100001];int D[1000005];int cnt[1000005];int main(){ int n; cin>>n; memset(D,0,sizeof(D)); memset(cnt,0,sizeof(cnt)); for(int i=0;i&
分类: 其他 发布时间: 09-07 22:21 阅读次数: 0

洛谷:P1072 Hankson 的趣味题(数学,最大公约数,最小公倍数结合)

题目:分析:信息:1,结果是a1的倍数。2.倍数不能是:a1/a0分解出来的质因子。信息:1,结果是b1的因子。2,b1/b0一定是结果的因子。3. b0质数分解也限制了倍数。我的思路:先求出a1和b1/b0的最小公倍数,这个最小公倍数的倍数就是之后结果。倍数还应该满足:1.不能是a1/a0的因数。2.必须是b0的因数(不准确,先求出a1和b1/b0的最小公倍数,已经用去一部分了)。有错误:b1/b0的结果是什么?是最终结果必须包含的,但要保证最小公倍数还要继续处理。放弃了
分类: 其他 发布时间: 09-07 22:21 阅读次数: 0

洛谷:P1069 细胞分裂(普及+/提高,数学)---边筛素数,边分解数字

题目:分析:说了一大堆,就是一个数学问题:我的思路,进行质数分解。素数个数表:不需要:因为需要根据分母来搞分子,所以:先分母,再分子。代码:#include<bits/stdc++.h>using namespace std;int A1[30001];int main(){ memset(A1,0,sizeof(A1)); /*for(int i=2;i*i<=30000;i++) { for(int j=2;i*j<=30000;j++) A
分类: 其他 发布时间: 09-07 22:20 阅读次数: 0

洛谷:P1127 词链(图,提高+/省选-)

题目:分析:这个题放这里我当然会做了。直接进行状态转化,单词转化为点,构造一个有向的图。单词要先排序。然后问题转化为在图中寻找能走完全部的最小路径了。具体怎么找呢?应该首先从0开始,能遍历的都标记,然后从没标记的中找最小的,遍历看看没标记的是否可以全部标记了,以此类推,代码:...
分类: 其他 发布时间: 09-07 22:20 阅读次数: 0

洛谷:P1144 最短路计数(图,)------对构造图和宽度优先应该有了更深一步的理解了。

题目:分析:图这块的题还是不会。瞄了一眼题解,哦,可以当做宽搜来做一下子。基本没优化,t了,:#include<bits/stdc++.h>using namespace std;int m,n;vector<vector<int> > vv;int done[1000005];int done2[1000005];void bfs(){ queue<int> q; q.push(1); while(!q.empty()) {
分类: 其他 发布时间: 09-07 22:20 阅读次数: 0

洛谷:P1629 邮递员送信(图,地杰斯特拉算法,普及/提高- )

题目:分析:我想到了去的时候是digkstral算法。返回的时候难道是求n个地杰斯特拉算法?然后只用到了一半。看题解,我真就是个菜鸡,返回的时候不就是反向建个边,然后,还是从起始点1点的地杰斯特拉算法吗?代码:重写地杰斯特拉算法模板后再写吧!...
分类: 其他 发布时间: 09-07 22:20 阅读次数: 0

洛谷:P1395 会议(树,重心)

题目:分析:只想到了暴力。代码:
分类: 其他 发布时间: 09-07 22:19 阅读次数: 0

洛谷:P4281 [AHOI2008]紧急集合 / 聚会(树,lca)

题目:分析:既然出在了最近公共祖先这里,那我一定往这想。当然,很轻松的想到,就是两两求祖先,或者前两个求祖先,祖先再和第三个求。当然,有一种特殊的情况,最终的公共祖先是结果。...
分类: 其他 发布时间: 09-07 22:19 阅读次数: 0

洛谷:P5666 树的重心(图,dp)

题目:分析:如果是仅仅求一个树的话,那就是一个简单的dp转移,但是如果每个,是不是按照一个会超时。。看题解,暂时放弃吧!!!/(ㄒoㄒ)/~~代码:
分类: 其他 发布时间: 09-07 22:19 阅读次数: 0