6 请_坚持思考

尚未进行身份认证

我要认证

思考是你的拥有唯一的能力 请---坚持思考

等级
TA的排名 13w+

Codeforces Round #402 (Div. 2) C:Dishonest Sellers

Codeforces Round #402 (Div. 2) C:Dishonest Sellers #include #include #include #include #include #include using namespace std;#define MAXN 200010static int N,K,ans,A[MAXN],B[MAXN];int main

2017-02-26 20:00:50

Codeforces Round #401 (Div. 2)C. Alyona and Spreadsheet

Codeforces Round #401 (Div. 2)C. Alyona and Spreadsheet看代码  一种新的思想 dp 以每行#includeusing namespace std;const int MAXN=100010;int n,m,a[MAXN],last[MAXN],h[MAXN],k;int main(){ scanf("%d%d"

2017-02-24 20:41:30

hdu1281+坐标构图+二分匹配

hdu1281+坐标构图+二分匹配这道题主要就是构图思想 之前的A题也是一样的 但是没想明白为什么这样构图是正确的 虽然说现在也没真正想清楚 但是也能够进一步理解解题思路是 以x 和 y轴建立二分图 x和y分别代表两个集合 如果一个点可以放车 那么x,y连一条边因为是 坐标的垂直方向和水平方向不能有车 所以这个坐标x,y连一条边,这样就可以排除车相互攻击的可能性 代表可以放东西

2017-02-24 17:06:38

poj1236 有线图的强连通分量 tarjan算法判断

poj1236 有线图的强连通分量 tarjan算法判断/*/*总结:这道题开始做的时候思路是正确的,但是我是把它当成无线图处理了但是这道题是有向图,有向图的连通判断是tarjan算法和kosaraju算法判断几个强连通分量无向图就是判断判断是否连通,一般有两种方法判断无向图1;并查集2;搜索,bfs,dfs; 这道题判断强连通分量,然后是缩点,将一个强连通分量变成一个点,那么就变

2017-02-17 18:08:54

hdu 4009 小树形图

hdu 4009 小树形图这道题用到图论的一些思维方法 那就是增加超级源点 超级源点到其他所有点的权值是其他点打井的花费  这样的话 就很好表示哪一户打井 如果打井就选择相应边进行了做题时的错误:1;以为打井的深度是任意深度的   其实是固定的c 原文的误解让这道题增加了难度2;写代码时总是忘记变量的匹配了  函数返回值的匹配  还有就是n值忘记改  导致run time erro

2017-02-10 18:02:20

次小生成树 poj1679

次小生成树 poj1679遇到一道需要思考的题,所以把他写下来,见代码注释#include#include#include//什么是最小生成树?简单说就是第二小的树,这个第二小不一定是总权值第二小,也可能和MST一样的#include//题目:判断最小生成树是否唯一 #include //开始的时候 用的另一种枚举但是有个细节没处理掉 就错了 #include//最小生成树 运用

2017-02-04 22:42:53

Beaver's Calculator coderforces 70A1 蓝桥杯

Beaver's Calculator coderforces 70A1 这道题贪心 思路简单 但是方法对于我来说比较巧了 题解看源码#include#includeusing namespace std;struct type{long x,y,z;}p[300000];bool cmp(type x,type y){ if (x.x==y.x) ret

2017-02-02 21:02:50

floyd 算法 带输出路劲

//floyd 算法 带输出路劲#include#include#define inf 0xFFFFFFFusing namespace std;const int maxn=100005;int n,dp[maxn][maxn],path[maxn][maxn];//floyd算法利用的是动态规划的思想。//也是可以求解矩阵的最值 void init()//求解最小或者最短时的初

2017-01-22 18:41:39

kmp

kmp的原理还好理解 但是代码比较难理解#include#includeusing namespace std;int next[105];void getnext(char *s,int lens)//O(m+n){ int j=0;next[0]=0; for(int i=1;i<lens;i++) { while(j&&s[i]!=s[j])j=next[j-1]

2016-12-27 00:03:58

记忆化搜索 区间dp uva629

记忆化搜索 区间dp uva629这题一看就知道是区间dp 状态定义很简单 但是在写代码的时候 有个地方一直错 错到我吐血 下面代码中有写d(x,y,k,h)表示x行到y行 k列到h列的最少数 也就是子矩形的宽度和高度 d(x,y,k,h)=min(d(x,i,k,h)+d(i,y,k,h)+h-k)  列的枚举也是如此#include #include using n

2016-12-04 20:59:35

记忆化搜索 逆向dp uva10118

记忆化搜索 逆向dp uva10118        这道题开始做的时候很容易 把状态定义成5维 d(i,j,k,h,g) 前面4个变量表示4堆糖果的现在在哪个位置 而后一个g则表示篮子里有几颗糖果 后面想了一下 我用递推的话那么我怎么推出每个状态后面的那个g 就是比较难转移 好像不行 因为之前很少用记忆话搜索 所以没有想到这个        原来记忆话搜索有这样的好处!记忆话搜索

2016-12-04 11:18:10

STL中map用法详解

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有

2016-11-27 12:35:41

石子合并 帮果实 动态规划解法

#include #include #include using namespace std;const int INF = 1 << 30;const int N = 205;int dp[N][N];int sum[N];int a[N];int getMinval(int a[],int n)//dp[i][j]表示的是第i到第j堆合并的最小花费 { for(i

2016-11-23 15:31:30

poj1733 离散化 带权并查集的思考

poj1733解析 离散化  带权并查集的思考 题意是给你一个区间和区间1的个数是偶数还是奇数 然后判断第一个错提问的   第一眼看到这题感觉是线段树 思考一下线段树的做法 线段树维护区间信息 维护一个区间是奇数还是偶数 线段树一个节点代表一个区间 但是一个区间并不代表一个节点 要多个节点存储一个信息 多个交叉区间维护的话 就乱掉了 而且一般线段树题是多次询问 所以线段树不行,这个题就是维护区

2016-11-22 20:51:07

第七届 蓝桥杯 5题

第七届 蓝桥杯 5题 对这道题的理解 #include #define N 6#define M 5#define BUF 1024void f(int a[], int k, int m, char b[])//m是还剩下派的人 { int i,j; if(k==N){ b[M] = 0; if(m==0) printf("%s\n",b); r

2016-11-15 21:18:11

分析问题

分析问题最近在做校内的题 一道简单的搜索题 我居然卡了很久 后面问了下 听了下思路我才焕然大悟 开始思考了一天 一直按题目所给的条件去思考 按照题目条件的话就是去暴力搜索 现在想下很蠢啊  是先搜所有的可能 在判断 一边判断一边搜特别麻烦 对于我来说写不出来 其实开始想的时候就没有往先搜后判 因为怕这样的思路复杂度太大 效率低 一般大一点的赛 不会出这种题 所以就没有往这边想了 一边判一边搜复

2016-11-15 20:52:11

快速幂取模

快速幂取模 刚好过来再来理解下 原理二分 #include#includeusing namespace std;int pew(int a,int n,int m){ if(n==0) return 1; int x=pew(a,n/2,m);//递归 二分 a^b%m=(a^2%m)^b/2 long long ans=(x*x)%m; if(n%2)//如果

2016-11-14 22:23:47

带权并查集 hdu3038

并查集 hdu3038 集合的应用 个人感觉有点难想 开始看到的时候还以为是线段树 之后会想到并查集 想了1个钟头 出了一点思路就是维护集合中的元素到根节点的距离 但是开始的时候没有考虑到左端点可以减一 所以没有算出怎么判断区间集合的冲突(也就是判断错误信息 比如exemple 1~3和4~6 这是可以合并一个区间的) 后面看了下 就出来了 还有就是输入要输入文件的EOF才能退出  一

2016-11-03 13:23:50

poj2236 并查集第一题 思路分析

并查集第一题 思路分析 poj2236 开始训练并查集 这是做并查集第一题 所以做一个思路分析 有助于自己对并查集的理解题意就不解释了问题一 判断各个节点之间是否可达?很明显 这里可以用dfs 或者 并查集 进行判断 这里用并查集比较快 因为这里并不用用到两点之间的路劲(由于比较慢,所以不用路劲来进行解决)或者其他一些信息一开始做的时候 因为是先进行各个点之间用并查集单独进

2016-11-02 16:53:28

hdu4614 Vases and Flowers 二分

hdu4614 Vases and Flowers 二分这道题用数据结构为优化时间效率 用二分来分别找出左边界答案 和右边界答案 这是属于线段树数据结构与其他算法的结合使用 开始做的时候 还死死的在线段树上做文章。。。。问题是 在以A为起点的区间 第一个可以插花的 和最后一个可以插花的地方 按照正常思路的话可以想到二分 可是与线段树扯上了 就只能想到在线段树上处理 看来这种结合思想

2016-10-29 21:10:40

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!