妊娠囊35&#tp警告码3 1021 100055;21&#tp警告码3 1021 100055;35是圆形还是长形

实际第一次同房性生活到去做b超50天,b超显示妊娠囊5.0&#cm胎芽长2.0cm。与同房时间_百度宝宝知道我最早b超单子是药流后第78天的!显示是妊娠囊5.0&#cm胎芽长2.1cm,然后服药后第96_百度宝宝知道B超显示妊娠囊8.5&#cm胎芽2.10cm是怀孕多少周了?谢谢_百度宝宝知道随笔分类 - acm训练
摘要: 链接:/problem/1036/题意不写了。思路:很明显找到lca然后用两个点的深度相加-lca的深度就是这一步的最近步数。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define loop(s,i,n) for(i =i g[maxn]; 16 int find(int x) 17 { 18 if(set[x] != x) 19 set[x] = find(set[x]); 20 21 ...
某某。 阅读(135) |
摘要: 链接:/problem/1021/这题挺有意思的,虽然比较水,但是让我想起来那次百度or腾讯的一道最大流的题目,很给力,也是对最后找边进行优化,不过这题比那题简单多了,找出最短路,然后对最短路上的变进行一下标记,最后找边的时候只招最短路上的边就可以了。代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define loop(s,i,n) for(i =42 q...
某某。 阅读(70) |
摘要: 链接:/problem/1035/怎么说呢,只能说这个建图很有意思。因为只有m条道,然后能互相接在一起的连通,对每个点进行拆点,很有意思的一道裸费用留题。代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 const int maxn = 350; 9 const int inf =
struct node 11 { 12 int u,v,cap,flow,co...
某某。 阅读(43) |
摘要: 中文题意不描述。链接:/problem/1028/这题一开始很裸的最大权二分匹配。但是原来没有接触过,KM的这个最大权不大会。然后一开始以为用最大费用最大流直接就能搞,后来知道单纯的费用流解决的是二分最佳匹配,而不是最大权,QCMM然后看了一下这个/lerroy312/item/42e718ba58a1f8df85dd795f结果改了之后不对,不知道为什么最后用的最小费用,对边的权值取负值,结果取负值才过。。。不解。。。 1 #include 2 #include 3 #include 4 #include ...
某某。 阅读(260) |
摘要: LIANJIE:http://poj.org/problem?id=3321给你一个多叉树,每个叉和叶子节点有一颗苹果。然后给你两个操作,一个是给你C清除某节点上的苹果或者添加(此节点上有苹果则清除没苹果就添加)q询问这个节点的子树上有多少个苹果。直接dfs遍历一遍,每个节点给一个时间戳,记录一下遍历玩这个节点是的始终时间戳,直接对时间戳进行询问即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define loop(s,...
某某。 阅读(25) |
摘要: 连接:http://poj.org/problem?id=1191思路:额,其实就是直接搞记录一下就可以了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define loop(s,i,n) for(i =i = 0) return dp[k][x][y][xx][yy];46 if(k == n)47 return sum[x][y][xx][yy];48 49 int i,j,...
某某。 阅读(157) |
摘要: 连接:http://poj.org/problem?id=1054题意:就是一个格子里一条线上最长有几个青蛙(青蛙间隔相同)~。但是其实青蛙的起点重点必须是在外面。直接写一个搜就是。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define loop(s,i,n) for(i =i = 1 && x = 1&&y &= c)27 return 1;28 29 return 0;30 31 }32 int find(
某某。 阅读(19) |
摘要: 题目连接:http://poj.org/problem?id=3280题意就是给你一个字符串,含有n个字母,每个字母可以添加可以去除,添加和删除字母有花费,问组成一个回文串。思路就是每个回文串的最大子串必定有一个开头一个结尾位置,最终位置为0~len-1,这样但是每一对起始位置都会有一个回文长度,对每一个长度进行搜就可以了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define loop(s,i,n) for(i ...
某某。 阅读(58) |
摘要: 连接:http://poj.org/problem?id=2029题意:给你一个map,然后在上面种树,问你h*w的矩形上最多有几棵树~这题直接搜就可以。不能算是DP用树状数组也可作。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define loop(s,i,n) for(i =i & n && n){21 memset(map, 0, sizeof(map));22 memse...
某某。 阅读(22) |
摘要: 题意:给你一棵树,每条边都有值W,然后问你去掉一条边,令val = w*max(两颗新树的直径),求val最小值~做法,先求树的直径,然后算出直径上每个点的最长枝条长度。这样对于每一条边,假如是枝条边,那么val = w*直径,如果不是那么val = max(w*(两颗新树的直径))。新树直径说到这里已经很好算了。DFS爆栈了一下午 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define loop(s,i,n) for(i...
某某。 阅读(75) |
摘要: 链接:题意就是告诉你一个扫雷图里面每个雷的位置,有两个人,每个人都知道雷的确切位置,每个人一次可以点一部,问你谁能赢。链接:http://acm./showproblem.php?pid=4678思路:整张图有三种格子,一种是空白,一种是带数字的,一种是雷。我们可以根据雷知道整张地图。如果我们点空白那么跟空白连通的数字(不可能有雷)和空白都会显示出来。也就是说数字又可以分为跟空白连着的和不连着的。整个游戏的输赢是与这局所走的总步数有着直接关系,如果是偶数那么后手赢,否则先手赢。那么与空白连着的数字一定被点与否一定会决定着真个游戏的走势,而不与空白相连的数字不管奇偶性都是要被
某某。 阅读(135) |
摘要: 题意:不说了很好懂、这题这么水= =。。。当时竟然没有勇气暴力搜一下。昨天(好吧前天。)比赛的时候胃疼,看到这题想了一个办法就是对每一个出现最短的C串前后连接然后对这个串求最长公共子序列。其实优化一下就是现在的答案啊~~!!!!给赵鹏说了赵鹏说不可能这么过。。然后就没想。就这样这么水的一道题都没过!!!!桑心啊~代码: 1 #include 2 #include 3 #include 4 #include 5 6 char sa[1005]; 7 char sb[1005]; 8 char sc[1005]; 9 int c[...
某某。 阅读(133) |
摘要: 题意:给你N个珠宝和一个K,每个珠宝上面都有数字,这个珠宝做成项链,把珠宝上的数字拼起来如果可以整除掉K,那么久说这个数字为wonderful value,问你有多少种方案可以组成WONDERFUL VALUE。对每个数取余并记录多少位,这样的话拼数的时候好操作。详细解法贴个结题报告吧。代码: 1 #include 2 #include 3 4 int dp[5]; 5 int a[100005]; 6 int len[100005]; 7 int decmod[50005 1;i--)56 {57 ...
某某。 阅读(55) |
摘要: 题意:给你N 城市和M条道路,每条道路要付的钱,但是如果你在这个道路上你可以付其他道路的钱(跟走到的时候去的话不一样),问你从1走到N最少话费是多少。直接DFS搜。链接http://poj.org/problem?id=3411代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define loop(s,i,n) for(i =i g[15];19 int vis[15];2021 int n,m;22 void ...
某某。 阅读(42) |
摘要: 题意:给你N个城市和M条路和K块钱,每条路有话费,问你从1走到N的在K块钱内所能走的最短距离是多少链接:http://poj.org/problem?id=1724直接dfs搜一遍就是代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define loop(s,i,n) for(i =i dis)31 ans = if(ans & di...
某某。 阅读(18) |
摘要: 当时自己做的时候没有这么想,想的是每个象限去找一个无穷值来作为比较点。但是很麻烦代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #define loop(s,i,n) for(i =i mst[50];21 for(i = 1;i ::60 it = mst[j].find(sum);61 62 ...
某某。 阅读(10) |
摘要: 题意:有一个n*m的矩阵,告诉了在每一行或者每一列安装大炮的代价,每一个大炮可以瞬间消灭这一行或者这一列的所有敌人,然后告诉了敌人可能出现的L个坐标位置,问如何安置大炮,使花费最小。如果一个敌人位于第r行c列,则他可以被第r行或者第c列的大炮消灭。链接:http://poj.org/problem?id=3308这题突然就让我想起来那个多校的那道多米诺骨牌的那个,几乎一样的模型,还不过要把权值改一下,因为权值是相乘,那么就吧权值改成相加,也就是用log去改变。这样的话 如果坐标为x,y的点要被消灭,那么要么走x要么走y,这样的话就直接是一个二分图的形式了。一边是行,一边是列,用出现的点连边,就
某某。 阅读(119) |
摘要: 题目大意:给定一些城市,然后再给一些寄信的路信,A,B,H代表把信从A城市寄到B城市需要H小时。如果没有直接可以寄达的,可以先通过另外一个城市到达,比如A,B可以寄信,B,C可以寄信,那么,A,C也可以寄信。其中两个城市之间如果可以相互寄信的话,那么这两个城市是属于一个国家的,寄信可以通过电子邮件,所以所需的时间为0.题目中有K个询问,输入A,B询问A到B之间寄信最少需要多少时间。连接:http://poj.org/problem?id=3114距离为零肯定就是强连通分量嘛~。一开始是打算用的缩点FLOYD,结果超时。但是搜了一下,有人用floyd就不超时,叫秦川看了下,秦川也不晓得,他自己写
某某。 阅读(61) |
摘要: 题意:一个连通的无向图,求至少需要添加几条边,救能保证删除任意一条边,图仍然是连通的。链接:http://poj.org/problem?id=3352思路:边的双连通图。其实就是要求至少添加几条边,可以使整个图成为一个边双连通图。用tarjan算法(求割点割边)求出low数组,这里可以简化,然 后依据“low相同的点在一个边连通分量中”,缩点之后构造成树(这里可以直接利用low[]数组,low[i]即为第i节点所在的连通分量的标号)。求 出树中出度为1的节点数left,答案即为(leaf+1)/2。代码: 1 #include 2 #include 3 #include 4 #...
某某。 阅读(77) |
摘要: 问加一条边,最少可以剩下几个桥。先双连通分量缩点,形成一颗树,然后求树的直径,就是减少的桥。本题要处理重边的情况。如果本来就两条重边,不能算是桥。还会爆栈,只能C++交,手动加栈了别人都是用的双连通分量,我直接无向图改成有向图搞得强连通水过。 1 #pragma comment(linker, &/STACK:,&) 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 10 ...
某某。 阅读(189) |
摘要: 先说一下割点跟割边吧。割桥就是如果一个连通图里删除这条边之后,这个图会变成两个连通图,那么这条边就称之为割桥。这是割桥的代码,里面呆着lca求法。割点和割桥的就是用一个时间戳和回到祖先确定。用dfs的时间戳可以看出。割点为low[v] &= dfn[u]割边为low[v] & dfn[u]。但是要注意的是割点的条件对于搜索树的根节点是要特殊处理的,当根节点的孩子大于1的时候就一定是割点。 1 void tarjan(int u,int pre) 2 { 3 int v,i,j; 4 dfn[u] = low[u] = ++ 5 loop(0,i,g[u...
某某。 阅读(26) |
摘要: 链接:http://poj.org/problem?id=3592题意:题目大意:给定一个矩阵,西南角为出发点,每个单位都有一订价值的金矿(#默示岩石,不成达,*默示时佛门,可以达到指定单位),队#外,每个点只能向右走或向下走,并且可以反复经过一个点。如今请求得最多可以获得多大好处。一开始看到这个题,会以为是费用流。但是计划上是在tarjan上的。我觉得如果比赛的时候有这道题估计我也就挂了。因为这个图大部分的点只有两个后续节点, 但是*会有更多的节点,所以说这样会产生环,因此可以吧整个图求强连通进行缩点,因为每个强连通分量重的点你是可以得到她所有的值。不管走几次,就是那么多,缩完点之后就可以构
某某。 阅读(275) |
摘要: 题意: 有N个点,M条边。 点有权值, 边有权值。 Alice, Bob 分别选点。 如果一条边的两个顶点被同一个人选了, 那么能获得该权值。问 Alice - Bob?链接:http://acm./showproblem.php?pid=4647思路: 贪心。对于一条边来说, 如果拿了一个点, 说明已经拿了该边的一半权值。如果某边的两个的顶点分别是不同的人。 那么差值还是不变的。如果某边的两个顶点分别是同一个人。 那么和值也不变。所以我们可以把一个边分解到两个顶点上。然后依次Alice 取最大,Bob 取次大。 因为 他们都是绝顶聪明的。当时也想过,但是觉着不可能这么简单
某某。 阅读(96) |
摘要: 连接:http://acm./showproblem.php?pid=4638题意:就给给你n个数(大小在1-n里),然后给你连续的可以构成一个块,再给你N个询问,每个询问一个l,一个r问你l-r里面有多少个连续的段其实每一个数都是一个独立的段,当有连续的时候连续段数就会-1,因为连续的段中,位置最靠前的哪一个只会影响以这个位置为l的询问,不会影响后面的,所以,我们可以对询问从后向前去找,离线话去找。这样的话就可以用树状数组去解决问题、 1 #include 2 #include 3 #include 4 #include 5 #include 6 #...
某某。 阅读(141) |
摘要: 题目连接:http://acm./showproblem.php?pid=4630题意:给你N个数,然后给你M个询问,每个询问包含一个l 一个r,问你lr 这个区间中任意两个数最大的公约数。思路:以为是l,r所以,只跟l后面的有关,所以把询问排序,数组a[]从后往前枚举约数,标记下这个约数最早出现的位置,如果这个约数出现了,那就让这个数更新一下最大的保存在树状数组中,如果没出现,那么就标记一下位置就好~这样的后面的答案会影响前面的但是前面的不会影响后面的。 1 #include 2 #include 3 #include 4 #include 5 #inc...
某某。 阅读(22) |
摘要: 题意:告诉你一些骨牌,然后骨牌的位置与横竖,这样求最多保留多少无覆盖的方格。这样的话有人用二分匹配,因为两个必定去掉一个,我用的是最小割,因为保证横着和竖着不连通即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define loop(s,i,n) for(i = 14 vectorg[maxn],G[maxn]; 15 void addedge(int u,int v,int cap,int flow) 16 { 17 //printf(&********u %d *...
某某。 阅读(43) |
摘要: 题意:给你一个连通图,问你最多加多少条边,还能保证该图不是强连通图。对整个图求强连通分量,然后对图缩点,记录一下缩点之后每隔点包含的原来的点的个数,找出最少的那个点,然后对这个点建成完全图,对另外的所有点建成完全图。然后+两个点建边-所有原来的遍就好了。链接:http://acm./showproblem.php?pid=4635 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 10 c...
某某。 阅读(23) |
摘要: 题意:给你一个字符串和m个询问,问你l,r这个区间内出现过多少字串。连接:http://acm./showproblem.php?pid=4622网上也有用后缀数组搞得、思路(虎哥):用字典树把每一个字符串对应成一个整数 相同的字符串对应到相同的整数上把所用的串对应的整数放在一个数组里 比如书字符串s[l...r]对应的整数是 k那么二维数组 [l][r] 就等于k假设一个对应好的二维数组左下角是原点3 4 5 22 3 4 01 6 0 02 0 0 0这样求解 从l到r的不同字符串的个数 其实就是求 从[l][r] 到右下角所在的矩阵所包含不同整数的个数(不包括0)这里
某某。 阅读(279) |
摘要: 题意:给你一个字符串,问你整个字符串有多少个回文字串。(可以不连续)状态方程 dp[i][j] = dp[i+1][j]+dp[i][j-1]+dp[i+1][j-1]+(a[i] == a[j]? 0:1;)对于长度为1 2 3 的时候特判一下就可以了。当然状态方程在些的时候会有改动,详细的还是看代码吧。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define loop(s,i,n) for(i =i 2)38 dp[i]...
某某。 阅读(98) |
摘要: 题意:给你一个长度小于等于16的字符串,每次可以删除一个回文传,问你最少删除干净的字数。状态+dpdp[i] = min(dp[i],dp[j]+dp[j^i]);(j是i的字串);连接:http://acm./showproblem.php?pid=4628代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define loop(s,i,n) for(i =i &i++) 9 1011 i...
某某。 阅读(37) |
摘要: Tarjan算法应用 (割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)问题)(转载)转载自:/lydrainbowcat/blog/item/bbed2db1351de8.html基本概念:1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。3.点连通度:最小割点集合中的顶点数。4.割边(桥):删掉它之后,图必然会分裂为两个或两个以上的子图。5.割边集合:如
某某。 阅读(956) |
摘要: 题意:给你一个连通图,然后再给你n个询问,每个询问给一个点u,v表示加上u,v之后又多少个桥。一个最容易想到的办法就是先加边找桥,加边找桥,这样可定超时。那么就可以缩点,因为如果一条边不是桥那么无论怎么加边他肯定都不会变成桥,这样我吧不是桥的点缩成一个点。这样全图就都是桥,这样的话,我们就在加的遍里面去找如果加的边是同一个点,那么,肯定不会减少桥,但是如果不是同一个,那么桥肯定减少~。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #defin...
某某。 阅读(346) |
摘要: 题解:http://blog.csdn.net/lyy/article/details/6756821讲的很详细我就不多说了。题目连接:http://poj.org/problem?id=2942代码(完全白书上的) 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define loop(s,i,n) for(i =i g[maxn],bcc[maxn]; 15 struct edge 16 { 17 ...
某某。 阅读(205) |
摘要: 题意:给你一棵二叉树,每个节点有一个w值,现在有一颗小球,值为x,从根节点往下掉,如果w==x,那么它就会停止;如果w&x,那么它往左、右儿子的概率都是1、2;如果w 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define cl(a,b) memset(a,b,sizeof(a)) 9 #define loop(s,i,n) for(i =i q[maxn]; 27 int ans[maxn][2]; 28 29 int lowbit(int x)...
某某。 阅读(182) |
摘要: 链接:http://poj.org/problem?id=2186题意:给你N个点,然后在给你N条有向边,然后让你找出这样的点S,S满足条件图上任意一点都能到达S。要想满足任意一点都能到达,首先满足图连通,然后满足将图缩点后形成一个棵树,树的特征是可以有且只有一个点的出度为0。然后代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 10 const int maxn = 5 ...
某某。 阅读(37) |
摘要: 题意就是找一个 左右上下对称的正方形矩阵。连接:http://acm./showproblem.php?pid=4618没想到记忆+dp和暴力就能水过。。。//记忆话搜索+dp#include #include #include #includeint a[301][301];char dp[301][301][301];int n,m;int judge(int i,int j,int len){ if(i+len-1 &= n) return 0; if(j+len-1 &= m) return ...
某某。 阅读(60) |
摘要: 题意:有一群小朋友围成一个环,编号1,2,3…N。每个人手上握着一个非0的数字,首先第K个人出列,然后看他手上的数字,假设为m,则从下一个开始第m个人出列,一直如此。并设i为小于等于N的最大反素数,问第i个出列的人得编号,i的约数个数。(设g(i)为i的约数的个数,若任意j#include #include#define maxn 100005int maxsub[maxn&1; build(l, m, rt&1; if (m &= target) update(target, val, l, m, rt&&1); els
某某。 阅读(26) |
摘要: 问题描述:给定一个环形序列,进行在线操作,每次修改一个元素,输出环上的最大连续子列的和,但不能是完全序列。算法:把环从一个地方,切断拉成一条直线,用线段树记录当前区间的非空最大子列和当前区间的非空最小子列。动态规划解决过静态的序列最大连续子序列和问题,时间复杂度可以达到 n(环形序列可能复杂度更高)。但是这里涉及到动态更新,更新频度很大,如果计算子序列和复杂度仍然是n,就会非常耗时。如果环上的数都是正整数,答案是:环上数的总和-根结点的非空最小子列;否则,答案是:max{根结点的非空最大子列, 环上数的总和-根结点的非空最小子列}一开始想到,如果将环从一点断开,那么最大和如果包括断点的最后一个
某某。 阅读(89) |
摘要: 题目连接:题意:要求设计这样一个数据结构,支持下列操作1.add(x,y,a).对二维数组的第x行,第y列加上a.2.sum(l,b,r,t).求所有满足l 2 #include 3 #include 4 #include 5 #define loop(s,i,n) for(i =i 0;i -= lowbit(i))25 {26 for(j =j & 0;j -= lowbit(j))27 res+=c[i][j];28 }2930 }31 int main()32 {33 int t...
某某。 阅读(26) |
摘要: 题目连接:http://acm./showproblem.php?pid=4604思路:就是模拟一下,求每一个开始的非上升和非下降序列。然后求重复的数,由于求出来可能不会是我们想要的序列如这样的话求出来的会是222233,而我们想要的到的是112222,所以不能用普通的,而是用N*logN(当然也是因为数列太长),而我们得到的是1122222多处一个2这个2是11之前留下的,但是因为2比1大才留下,那么2一定会留在最长上升里面,所以2是会被算作重复的减掉。代码: 1 #include 2 #include 3 #incl...
某某。 阅读(161) |
摘要: 连接:http://acm./showproblem.php?pid=4602题目大意是给你一个数的N的加法构成中另外一个数k的出现次数。如 4=1+1+1+14=1+1+24=1+2+14=2+1+14=1+34=2+24=3+14=41出现了12次。这题是赵鹏搞出来的。一个数N可以分成好N个块,如果说N= 5,K= 2 那么则会有(0|0|0|0|0)0|00|0这样的可以出现或者在边上的情况00|或者|00,才能保证有00会出现,因为122中2出现两次,所以不用怕出现重复的情况。代码: 1 #include 2 #include 3 #include 4 #inclu
某某。 阅读(249) |
摘要: 连接http://acm./showproblem.php?pid=4608题目大意:给你一个数N,让你每一位上的数字加起来之后可以被10整除的大于N的数中最小的一个。一开始想错了,想BFS,后来一想肯定不行然后去看了1003,然后发现1003不大适合我。然后就换了1009,看了一会就想想把所有的数加起来看他离%10 == 0差多少,然后从各位开始补,如果个位能补到10那就是结果,如果不能那么用两位或者更多位一定能补掉这个结果(num[n-1]+1000000-bit)%10,bit为其他加1的个数。代码如下: 1 #include 2 #include 3 #incl..
某某。 阅读(217) |
摘要: 连接:http://acm./showproblem.php?pid=4607题目大意就是给你N个点和N-1条边,保证整个图连通(因为边的限制,所以不可能形成环),每条边长度唯一,问要到达K个点的最短路径(起点任意)。这题画了好久的图,当时就是想找最长链,任意起点,然后BFS找到最远的点,然后从最远的点再进行BFS找最远的点,那么这两个点就是最长链的两个端点,由于图是联通的,手N-1条边的限制,所以一定是一棵树,而且要到达K个点也就好球了当K&n时,所以是要到最长路的分支上去的。而且取得点一定是去了还要回来到最长链上。结果也就出来了。后来虎哥说这个最长链就是树的直径。
某某。 阅读(363) |
摘要: link:http://acm./problem.php?id=2161这题的大题题意是给你N个多面体,每个多面体的每个面都有字母,然后告诉你几个单词,问你能拼出几个单词。从这道题意不难看出这每个多面体只能每次提供一个字母,也就是说每个多面体预期所带的字母之间所能提供的流量为1 ,不难看出是个二分图,当时用的DFS果断超时,然后想到二分匹配时觉得二分匹配不熟,写了个EK最大流也超市。。。后来回到宿舍敲了一个DINIC果断88ms啊!刚才写了个二分匹配还是超市,不过QC他们的二分过了不知道为什么。。。#include &stdio.h&#include &i
某某。 阅读(84) |
摘要: 题意:一条长为l(1~1,000,000,000)的河中,有n(1~50,000)块可垫脚的石头(不包括起始点和终点的),给出它们与起始点的距离rock[i],现在要你移除其中的m块,使得具有最小间距的相邻两块石头之间的距离最大。View Code 1 #include &stdio.h& 2 #include &iostream& 3 #include &algorithm& 4 5 int cmp(const int &a,const int &b) 6 { 7 return a&b; 8
某某。 阅读(44) |
摘要: 题目连接:http://poj.org/problem?id=3273题意:给出农夫在n天中每天的花费,要求把这n天分作m组,每组的天数必然是连续的,要求分得各组的花费之和应该尽可能地小,最后输出各组花费之和中的最大值思路:这个花费的最大值一定介于所有值的和与所有天数中最大的哪一个。直接让l = maxday ,r = sum然后取中值,枚举,从第一天开始,如果现在的金钱大于mid,那么组数就+1这样就检查组数即可,假设是小于,说明这个mid值明显偏大。这样即可找出答案代码:View Code 1 #include &stdio.h& 2 #include &iostream
某某。 阅读(45) |
摘要: 最近做了一下网络流的题。发现很多题可以转化为网络流,比如地图上的点POJ 3422 和Going Home。最大流的题目真心不能手贱啊,那天一道题跪了一天,晚上才看到写错了一个下标,后来有一道题有看了一晚上一直到2点多,以后没事一定要不数据输出出来,最后输出的时候发现忘了加pop()你这不坑爹吗。今天一直输出忘了return 1= =.哎,说说总结吧1.做过的次数可以化为点之间的容量2.对于走过之后的数据清零比茹3422就可以把拆点,每走到自己的点的时候就把自己和自己连起来,一天有费用的一条没有没用的,有费用的边容量为1;3.重边不能用邻接矩阵。加重边的时候要加费用相同4.注意容量问题,想清楚
某某。 阅读(63) |
摘要: 题目连接:http://poj.org/problem?id=2516题意跟题目输入这里写的很明白:http://blog.csdn.net/lyy/article/details/6742534无非就是k种物品,直接对每种物品进行一次最大流就OK了~View Code 1 #include &iostream& 2 #include &queue& 3 #include &iostream& 4 #include &cstdio& 5 #include &cstring& 6 #include &vector
某某。 阅读(61) |
摘要: 题目连接:http://poj.org/problem?id=2195题目大意 :题目的意思就是给你一个map然后m代表人,h代表house,一个人只能进入一个house,一个house只能住一个人,问你所以人进入house所能用的最小步数是多少~思路:把man和house分别看做一个集合,这样的话你就可以对每个人和每个house 连接,cao = 1,cost = abs(x1-x2)+abs(y1-y2);然后开一个超级源点就可以了。其实模型就是走多少次就是容量。费用根据题目而定。View Code 1 #include &iostream& 2 #include &cs
某某。 阅读(40) |
摘要: 题目连接:http://poj.org/problem?id=3422题目大意:n*N的格子,每个格子上都有数字,从左上角往右下角走,只能往右或者往下走,每走一个格子就加上格子上的分数,走过后格子上的分数为0,走K遍。问能够得到的最大的格子数是多少。这题如果不是做费用流专题真心不会想不到费用最大流。以为是K次,所以可以设容量为K。费用为当前格子的分数。然后因为每个点只记录一次分数,所以,用拆点来处理,用自己和自己连接一下,容量为1,费用为k然后再设一条边容量为K-1次,费用为0;然后就是设超级源点和汇点,容量为K费用为0;我还有一个思路就是每条边的权值都为K,然后找到最大流的时候直接把COST
某某。 阅读(48) |
摘要: C++ sort函数用法FROM:/blackdemonfish/blog/item/e2c1d655d702a45edEhtml最近算法作业经常需要排序。偶是一个很懒的人,于是一直用C++的sort进行排序~~~不少同志对此心存疑虑,所以今天就写一写sort的用法。声明:此用法是从某大牛的程序中看到的,其实偶只是拿来用,不知所以然,飘走~~~~~MSDN中的定义:template&class RanIt&voidsort(RanIt first, RanIt last); //--& 1)template&cla
某某。 阅读(25) |
摘要: link:http://acm./showproblem.php?pid=2063匈牙利算法代码:View Code 1 #include &stdio.h& 2 #include &string.h& 3 #include &stdlib.h& 4 #include &iostream& 5 6 int map[]; 7 int used[1005],linker[1005]; 8 int find(int x,int n) 9 {1011 for(
某某。 阅读(190) |
摘要: 题目连接:http://poj.org/submit?problem_id=3281有人所用邻接矩阵会超时。。。然后。。。哥笑了~(*^__^*) 嘻嘻……其实这题我觉得这不超时这题一开始崔老师说把牛放中间我的意思是把人放在最前面,因为如果放在中间1头牛3物三水的话答案就会错误,但是如果把人放在前面感觉又会不大对= =。。然后崔老师就神一般的回答说拆点!顿时天亮了= =。。。其实我真心不知道拆点是神马。。。比赛有一道拆点我枚举匹配一下就过了。。虽然也是拆点的思想= =。。。总之拆点就是为了先吃每个点的出度唯一(个人理解)而做的重复两次操作。博客的上一个acm computer其实就是拆点。。。
某某。 阅读(41) |
摘要: 题目连接:http://poj.org/problem?id=3436英语不好,直接在网上搜的题意、、、很详细题意:电脑工厂有N台机器,每台机器对半成品电脑进行加工。每个电脑由P个部件组成,用0和1表示某部件是否已存在(1表示存在了)。每台机器对加工的电脑都是有要求的,只有满足要求,才能进入机器进行加工。机器对电脑部件的要求用0,1,2表示,输入的P个数中,第i个数为ai,ai=0表示该半成品电脑不能有部件i,ai=1表示该半成品必须已有部件i(即1),ai=2表示有没有此部件都无关系。进入机器加工后的电脑出来后所含部件情况用P个数字(0或1)表示。输入:P和N,接下来N行介绍N个机器,第一个
某某。 阅读(86) |
摘要: 题目连接:http://poj.org/problem?id=1459题目实在是不好懂,直接在网上搜了好多题解看题意。。。对于多源多汇点的这种直接虚拟一个总会点就OK了。题意:Sample Input2 1 1 2 (0,1)20 (1,0)10 (0)15 (1)207 2 3 13 (0,0)1 (0,1)2 (0,2)5 (1,0)1 (1,2)8 (2,3)1 (2,4)7 (3,5)2 (3,6)5 (4,2)7 (4,3)5 (4,5)1 (6,0)5 (0)5 (1)2 (3)2 (4)1 (5)4Sample Output 2 (...
某某。 阅读(304) |
摘要: 英语不好,懒得看题意,在网上搜的题意题目连接:http://poj.org/problem?id=1273题目大意:每当下雨,农夫FJ最喜爱的养尊处优的地方周围就变成了一个池塘,这让他很不爽,所以决心要把这个问题解决掉,所以他就在四周建造了一些渠沟以便排水,更为巧妙地是可以把这水排到一个小溪处。编号为1的节点作为池塘,编号为n的地方作为小溪。求最大排水量注意重边的情况就可以了;若菜一开始 打的代码没初始化,结果WA最大流基础入门:/0803yijia/archive//2865837.html代码:View Code #inclu
某某。 阅读(166) |
摘要: 原文地址:.cn/s/blog_6cf509db0100uy5n.html因为是初学教程,所以我会尽量避免繁杂的数学公式和证明。也尽量给出了较为完整的代码。本文的目标群体是网络流的初学者,尤其是看了各种NB的教程也没看懂怎么求最大流的小盆友们。本文的目的是,解释基本的网络流模型,最基础的最大流求法,即bfs找增广路法,也就是EK法,全名是Edmond-Karp,其实我倒是觉得记一下算法的全名和来历可以不时的拿出来装一装。比如说这个,EK算法首先由俄罗斯科学家Dinic在1970年提出,没错,就是dinic算法的创始人,实际上他提出的也正是dinic算法,
某某。 阅读(105) |
摘要: 题目连接:http://poj.org/problem?id=3026这题数据太坑了。。。不看解题报告不知道。。。尼玛,m,n后面不能加getchar(),得加gets(s);尼玛是有多少个空格啊~wa了N遍啊思路 先求点,然后对每一个点进行一次bfs,然后存距离,之后直接最小生成树。一开始我是用两个for循环去的值,直接超时。。。代码:View Code 1 #include &iostream& 2 #include &stdio.h& 3 #include &string.h& 4 5 6 struct nod
某某。 阅读(60) |
摘要: 题目连接:http://poj.org/problem?id=2485题意比较明显。。。就是求最小生成树里的最长路,其实用dijks也可以。。。View Code 1 #include &iostream& 2 #include &stdio.h& 3 #define max 6 6 int map[505][505]; 7 8 void init(int n) 9 {10 int i,j;11 for(i = 1;i &=i++)12 {13 for(j = 1;j...
某某。 阅读(34) |
摘要: 题目连接:http://poj.org/problem?id=1789每条边的权值为任意两truck不相等字母的数量,求最小生成树代码:View Code 1 #include &iostream& 2 #include &stdio.h& 3 #include &string.h& 4 #define max
6 int map[]; 7 8 void prim(int n) 9 {10 int i,pre,j,11 int vis[2005] =
某某。 阅读(24) |
摘要: 题目连接:http://poj.org/problem?id=2240思路:直接见图,floyd一遍之后看是否有自身大于一的。注意是有向图代码:View Code 1 #include &iostream& 2 #include &map& 3 #include &string& 4 #include &stdio.h& 5 6 map&string,int& 7 string s1,s2; 8 double mp[50][50]; 9 void init(int n)10 {11 i
某某。 阅读(13) |
摘要: 题目连接:http://poj.org/problem?id=1125题目就是要求你算每个点在能够到达所有点的情况下求到达所有点的费时中最大的最小值及其起点,如果不能到达直接输出disjoint。代码View Code 1 #include &iostream& 2 #include &stdio.h& 3 #define max
5 int map[106][105]; 6 void init(int n) 7 { 8 int i,j; 9 for(i = 1;i &=i++)10 {11 ..
某某。 阅读(19) |
摘要: 有N个点,青蛙A 在点1上,青蛙B在点2上,然后青蛙可以通过剩下的点来到达2点,求各个通路中最大的一段中的最小值~题目连接http://poj.org/problem?id=2253我的代码:View Code 1 #include &stdio.h& 2 #include &string.h& 3 #include &math.h& 4 #include&algorithm& 5 #include &iostream& 6 7 8 9 10 struct node11 {12
某某。 阅读(22) |
摘要: 题目连接:http://acm./showproblem.php?pid=4462当时比赛的时候读错题意了。。。很悲催的没有考虑n*n个稻草人的时候。。。。然后一直WA= =。。。悲剧啊。。。。回来的时候崔老师教了一个枚举的办法。。。就是位运算。。之前做的一道DFS也可以用位运算来写(其实取1或者取0的dfs都可以用位运算写= =)~、膜拜崔老师~View Code #include &iostream&#include &math.h&#include &stdio.h&#include &string.h&#include
某某。 阅读(76) |
摘要: 题意不再赘述。。。连接http://acm./showproblem.php?pid=4460此题直接郁闷致死。。。。比赛的时候用的是floyd然后直接超时。。。当时闪过spfa的想法,但是觉得如果是一个循环spfa话也会超时。。。今天试了一下。。。果然超时= =。。。郁闷啊亲。。。然后优化了一下,用一个邻接表去存边。一开始忽略了一点就是-1的输出。。。代码。View Code 1 #include &stdio.h& 2 #include &iostream& 3 #define inf 10000 4 #include &map& 5
某某。 阅读(240) |
摘要: 题目连接http://poj.org/problem?id=3083题目大意:一看就是基本的迷宫问题,一个是优先往左走,一个优先往右走,还有一个是求最短。额。。。。好久没写bfs= =...上来bfs没加vis= =。。。。然后dfs又写错,因为是左右思路相同,我是直接复制的,找了好久一直是re= =、你妹妹的。。。用一个全局变量保存朝向,用一个%4来保存结果View Code 1 #include &stdio.h& 2 #include &string.h& 3 char map[100][100]; 4 int m,n,sx,sy,dx, 5 int dir
某某。 阅读(25) |
摘要: POJ挂掉了,然后去ZOJ上。记得uva上有这题,直接pow水过,后来崔老师说用二分也可以写。ZOJ上我写的TLE= =...崔老师WA= =。。。目测不到哪里有错= =。。。做的POJ开封。二分代码View Code 1 #include&iostream& 2 #include&math.h& 3 #include &stdio.h& 4 #define eps 0. 5 6 7 void div(double n,double k) 8 { 9 long long l,r,10 l
某某。 阅读(30) |
摘要: 原来做过的贪心比较简单View Code 1 #include &stdio.h& 2 #include &string.h& 3 #include &math.h& 4 #include &algorithm& 5 6 struct node 7 { 8 int x,y; 9 }il[10005];10 struct re11 {12 double x1,x2;13 }radar[10005];14 int cmp(struct re a,struct re b)15 {16 return a.x2 &
某某。 阅读(67) |
摘要: 题目连接:http://acm./sdutoj/problem.php?action=showproblem&problemid=1035题目大意:给你一个黑白的棋盘,每次翻一个子(翻的子上下左右也自动翻),看最后能否返程全黑或者全白、最少要几次。View Code 1 #include &stdio.h& 2 #include &string.h& 3 int ans = 10000; 4 char map[10][10]; 5 int pan() 6 { 7 int i,j; 8 for(i = 0;i & 4;i++) 9 {1
某某。 阅读(24) |
摘要: 题目连接:http://poj.org/problem?id=2049第一次遇到这种网格bfs。因为是迷宫问题所以一开始就认为是bfs或者是最短路。然后发现不知道网格应该怎么处理,后来想用网格的一个点来代替这个网格,但是有四条边。后来一想其实可以认为每个网格只有两条边,右边和上边。这样可以用右上方的点代表一个网格,然后用一个三维map[2][i][j]来表示,0,1分别表示恨着和竖着,然后用类似最短路的一个数组来记录门数,当其sx和sy超过199小于0直接输出0;一开始拉了一个if一直re= =...代码:View Code 1 #include &stdio.h& 2 #incl
某某。 阅读(107) |
摘要: 题目连接题目大意就是输入M,N。然后输入map,如果遇到.那么就可一走,耗时为一,如果不为‘x’就是遇到守卫,需要杀死,额外耗时一,'#'是墙。代码:View Code 1 #include &stdio.h& 2 #include &string.h& 3 struct node 4 { 5 int x,y; 6 7 }q[100000]; 8 char map[250][250]; 9 int vis[250][250]; 10 int to[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};//方向 11
某某。 阅读(39) |
摘要: 题目题目大意就是输入一个T然后输入一个素数,再输入另一个数,输入第一个数变成另一个所需要的最少步数。代码:View Code 1 #include &stdio.h& 2 #include &iostream& 3 #include &string.h& 4 5 6 7 int vis[10005]; 8 int prim[10005], 9 struct node 10 { 11 int n[5], 12 13 }q[4*10005]; 14 void make_prim(..
某某。 阅读(73) |
摘要: 题目崔老师推荐,用BFS找路径,然后由于一开始的时候不知道那个打架的时间要费时然后WA了一次,然后当时看见有discuss里说开头可能有怪兽然后又没加优先队列然后又WA了了一次,最后因为优先队列的那个排序错了又WA了一次,一晚上就只做了这一道题。。。悲哀= =。。。View Code 1 #include&stdio.h& 2 #include&string.h& 3 char map[205][205]; 4 struct node 5 { 6 int x,y,step,f;//f存先驱,step是当前的步数。 7 }q[400005]; 8 9 int way...
某某。 阅读(79) |
摘要: 题目连接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=99&problem=189&mosmsg=Submission+received+with+ID+这道题跟我们小时候学筛子的时候有关,因为是6面三个颜色所以,直接看1-6,2-5,3-4的颜色搭配是否相同,相当于无向图,看看两个图是否相同就可以了。。注意是无向图哦~View Code 1 #include &stdio.h&
某某。 阅读(47) |
摘要: 连接:http://poj.org/problem?id=3211俩人只能一起溪一中衣服也就是说两人洗的时候就是01背包就是,然后吧各种衣服所用时间相加。。。View Code 1 #include &stdio.h& 2 #include &string.h& 3 4 struct node 5 { 6 char color[20]; 7 8 int a[105]; 910 }col[15];1112 int search(char s[],int m)13 {1415 ...
某某。 阅读(19) |
摘要: 题目连接http://poj.org/problem?id=#include &stdio.h&#include&algorithm&#include &math.h&int q[50050];struct node{ int x,y;}a[50050];int cmp(struct node p1,struct node p2){ int x1 = p1.x-a[0].x; int x2 = p2.x-a[0].x; int y1 = p1.y-a[0].y; int y2 = p2.y-
某某。 阅读(29) |
摘要: 题目连接http://poj.org/problem?id=1159这道题原来见过,那时候没学DFS什么的,以为是搜索然后直接暴搜,但是说真的真是没有想到这题竟然是DP,那时候也没学DP就放弃了。。。这道题的思路就是把整个问题分解成小问题,然后从下往上来求。。。我们先设一个DP[N][N],它里面是每个i~j变成回文的最小添加量,也就是说我们可以看做DP后已经全部都是回文。那么DP[1][N]就可以满足一个状态方程if(STR[1] == STR[N]I = 1,J = N;DP[1][N] == DP[I+1][J-1] + 1 (STR[I] == STR[J]) DP[...
某某。 阅读(27) |
摘要: 比赛那天下午做的。。。比赛的时候真不知道怎么做。。。亏了没做,做了我就死了。。欧拉回路我是真心不会判断啊(真的是忘了)。。。虽然离散考了86(鼓掌~),也不过是全班最高(再次鼓掌~)但是真的是恶补出来的(天赋秉异,美女上台献花)不扯淡了。。。这道题因为数据量比较大。。。500000的数据,所以用map和平常的查找肯定会TLE所以,要用到TRIE树。然后欧拉通路的判定就是通过查找度数为奇数的节点 & 2 是否成立不成立肯定是错的,但是成立了也要判断是不是父节点是否为一个节点。比如red redblue blue答案就是impossible代码如下View Code 1 #include &
某某。 阅读(32) |
摘要: 题目连接http://poj.org/problem?id=1088这道题其实说实话知道了思路真的很简单,但是那天晚上做的时候很苦逼的错了好多地方然后查还没查出来= =。。。表示DFS真的很吃力= =。。。所谓的记忆化搜索现在看来就是吧上搜索过的给存起来。。。需要一个状态方程dp[i][j] = max(dp[i+1][j],dp[i-1][j],dp[i][j+1],dp[i][j-1]);四个方向搜一遍找到最合适的即可。。。代码View Code 1 #include &string.h& 2 #include &stdio.h& 3 int num[105][10
某某。 阅读(165) |
摘要: 题目连接:http://acm./showproblem.php?pid=1180昨天晚上开始做这道题。。。以前打算做做这题但是不知道这优先队列应该怎么用。。。昨晚这道题才有点深入的了解些。。。这道题因为楼梯会变换方向会变成不同的路,所以一不能标记。。。而且要注意边界这个是我纠结了4歌小时候都最后经大神鉴定改错后的代码。。。-#include &string.h&#include &stdio.h&char map[30][30];int dis[4][2]= {{1,0},{0,1},{-1,0},{0,-1}};struct node{ int
某某。 阅读(43) |
摘要: 题目连接:http://acm./showproblem.php?pid=4318题目大意:讲的是西电东送。让你输入N代表N个点,然后再输入M代表可以到M个地方去,每个M钟有一个表示节点,一个表示耗电的百分比,。最后输入三个数,一个是起点,一个是重点,一个是总电量。然后算出最后到达终点使得总电量最大可以是多少,不能到达的话输出IMPOSSIBLE!这道题也就转化成了求最大的转化率。相当于最长路的计算。由于N&=50000数目比较大,所以估计邻接矩阵会超事,然后写了个邻接表的代码:#include &stdio.h&#include &string.h
某某。 阅读(44) |
摘要: 求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm。SPFA算法是西南交通大学段凡丁于1994年发表的.很多时候,给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 我们用数组d记录每个结点的最短路径估计值,而且用邻接表来存储图G。我们采取的方法是动态逼近法:设立一个先进先出的队列用来保存待优化的结点,优化时每次取出队首结点u,并且用u点当前的最短路径估计值对离开u点所指向的结点v进行松弛操作,如果v点的最短路径估计值有所调整,且v点不在当前的队列中,就将v点
某某。 阅读(183) |
摘要: pc代码View Code hdu 1147#include&iostream&#include&cstdio&#include&cstring&#include&cmath&#include&queue&const int N=1002;const double eps=0.;//注意设置一个精度struct node{ double ux, double lx,};queue&node&double j
某某。 阅读(111) |
摘要: View Code #include &iostream&#include &stdio.h&typedef struct node{}point p[105];point make_e(point x,point y){ a.x = x.x - y.x; a.y = x.y - y.y;}double cha(point x,point y){ return x.x*y.y - y.x*x.y;}int main(){ ...
某某。 阅读(53) |
摘要: #include &iostream&#include &stdio.h&typedef struct node{}typedef struct ed{ int is_}edge e[100005];point make_e(point x,point y){ a.x = x.x - y.x; a.y = x.y - y.y;}double cha(point...
某某。 阅读(140) |
摘要: 题目大意就是 你有足够多的坦克,让你用尽量多的坦克去占领电厂。有N+1各节点,0~n ,0为出发点,1~n为电厂。要想控制摧毁电厂,战胜对方,只需要占领一般的电量即可。但是特克会耗油,所一给你m条路,让你去计算最小耗电量~而且如果坦克不能通过m条路到达任意一个电厂的话就输出'impossible'连接:http://acm./showproblem.php?pid=3339代码:dijView Code 1 #include &stdio.h& 2 #include &string.h& 3 #define maxn 0x5fffff
某某。 阅读(29) |
摘要: 连接http://acm./showproblem.php?pid=2546这道题一开始我想错了以为是贪心。。。当时看到这道题的思路就是首先要-5然后用DP最后用看剩下来谁最大就买谁~后来实在不知道应该怎么处理,终不能用VIS来跟踪标记把= =。。。然后觉得思路错了, 应该是吧最大的那个菜留到最后再买~View Code 1 #include &stdio.h& 2 #include &string.h& 3 /*int cmp(const void *a,const void *b) 4 { 5 return a-b; 6 }*/ 7 int ma
某某。 阅读(20) |
摘要: 地址连接:http://acm./showproblem.php?pid=2955Roy 去抢N个银行,去抢第j个银行时能得到Mj的钱,被抓的概率为Pj。问在被抓的概率不大于P时能抢到的最多的钱是多少。这道题一开始我以为用P去当背包容量,但是P是double型,所以制定不行= =。。然后没大有思路。。。后来看到网上的思路就是逆向思维,将钱的总数当做背包容量~于是转成以所有银行的总资产为背包容量V。。求最大的逃跑概率。。也就是我们一个都不偷的时候我们逃跑的概率为1,每当我们偷了一个我们都要*(1-p[i])我们成功逃跑的概率状态转移方程:dp[j] = max ( dp[j]
某某。 阅读(37) |
摘要: 题目连接:http://poj.org/problem?id=3211大意就是 一个人洗衣服,然后找他媳妇帮忙。有n种颜色的衣服,和m件衣服,每件衣服的颜色和洗出来的时间都会给出来。再洗的时候两个人不能同时洗一件衣服,但是可以洗两件衣服,但是不同种颜色的衣服不能同时洗~让你求所需要的最少时间。这样我们就可以知道,这道题就是对每一种颜色的衣服所需要的时间进行dP就OK了,对每一种颜色的衣服DP就相当于给你几个正数让你把他分的尽量平均,也就是把和加起来然后除以2作为背包容量~代码:#include &stdio.h&#include &string.h&struct nod
某某。 阅读(94) |
摘要: 题目连接http://poj.org/problem?id=3624View Code 1 #include &stdio.h& 2 #include &string.h& 3 int main() 4 { 5 int n,i,j,w[3500],val[3500],v,f[20000]; 6 while(~scanf(&%d %d&,&n,&v)) 7 { 8 9 for(i = 1;i &=i++)10 {11 scanf(&%d %d&,&w[i],&val[i]);12 }13
某某。 阅读(69) |
摘要: 题目连接:http://acm./sdutoj/problem.php?action=showproblem&problemid=1500大意:输入几个字符串,然后再输入几个字符串,看第一次输入的字符串有多少没有在后面的字符串中出现(后输入的字符串不一定出现在之前的字符串中)代码:View Code 1 #include &stdio.h& 2 #include &string.h& 3 #include &stdlib.h& 4 struct node 5 { 6 7 struct node *next[2
某某。 阅读(37) |
摘要: 题目连接:http://acm./showproblem.php?pid=1075大意:有外星人来了,但是我不懂外星文。然后我有一本字典,然我去翻译,字典由start开始有end结束的相当于map转换,然后是由由start开始有end结束的需要翻译的句子。代码#include &stdio.h&#include &string.h&#include &stdlib.h&#include &ctype.h&typedef struct node{ char ans[55]; struct node *next
某某。 阅读(30) |
摘要: 这道题我用得静态树,发现静态树不如动态树啊,虽然时间快点,但是空间要求的也太离谱了~题目连接:http://acm./showproblem.php?pid=1247大意:让你输入几个单词,然后看看这有几个是可以有其他的任意两个单词或者一个单词两次,连接组成的,把他们输出就可以了代码View Code 1 #include &iostream& 2 #include &cstring& 3 #include &cstdio& 4 const int N=26; 5 const int maxn= char s[5000
某某。 阅读(31) |
摘要: disjkstra 算法View Code #include &iostream&#include &stdio.h&#include &string.h&int map[205][205];void inint(int n){ int i,j; for(i = 0;i &i++) for(j = 0;j &j++) if(i != j) map[i][j] = 0x5 else map[i][j] = 0;}//初始化~void Dijkstra(int s,int t,int
某某。 阅读(45) |
摘要: Building a Space Station题目连接:http://poj.org/problem?id=2031没有什么难点,唯一要注意的是重复路径和相交的情况,但是前一点用克鲁斯基本可以无视~今天涨姿势了~PKU上用G++输出时printf不能用lf得用f以前有个好习惯都用f。。。View Code加一个prim的写法View Code #include &stdio.h&#include &string.h&#include &math.h&#define maxn 1000000struct node{ double x,y,z,r;}degre
某某。 阅读(29) |
摘要: 题目连接:http://acm./showproblem.php?pid=1698大意:先输入一个t代表有t个案例,然后输入个数n代表一共有n个数,值为他们的编号1~n。然后输入q,代表q各更新,再输入a,b,c,代表把a_b的值全部改为c;然后求出所有的和。View Code 1 #include &stdio.h& 2 #define maxn
3 struct node 4 { 5 6 7 }tr[maxn]; 8 void pushup(int rt) 9 {10 tr[rt].sum...
某某。 阅读(40) |
摘要: 题目连接:http://poj.org/problem?id=3468题目大意:输入N,和Q,代表n个数字和q个操作,然后输入n个数字,然后再输入q个操作,Q代表求询问a,b编号之间的和(包含),C代表把a,b,之间的数都加上c。代码:View Code 1 #include &stdio.h& 2 #include &string.h& 3 #define maxn +50 4 struct node 5 { 6 __int64 7 __int64//lazy标记 8 }tr[maxn]; 9 __int6410 v
某某。 阅读(31) |
摘要: 链接:http://acm./showproblem.php?pid=1166代码View Code 1 #include &stdio.h& 2 #include &string.h& 3 #define maxn
4 struct node { 5 int l,r, 6 }tr[maxn]; 7 void pushup(int rt) 8 { 9 tr[rt].val = tr[rt*2].val+tr[rt*2+1].1011 }12 void build(int l,int r,int r.
某某。 阅读(25) |
摘要: 链接:http://acm./showproblem.php?pid=4217题意:就是让你输入一个N代表有1`n几个数,然后输入Q代表几次询问,每次询问输入一个K ,代表吧第K大的数删除。最后计算删除的数的大小~代码#include &stdio.h&#include &string.h&#define maxn +5//一般开到最大的四倍大小就无压力~__int64 count,struct node{ __int64 sum,}tr[maxn];void pushup(__int64 rt){ tr[rt].
某某。 阅读(80) |
摘要: 作者:Dong|可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址:http://dongxicheng.org/structure/segment-tree/1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,它基本能保证每个操作的复杂度为O(lgN)。2、线段树基本操作线段树的基本操作主要包括构造线段树,区间查询和区间修改。(1) 线段树构造首先介绍构造线段树的方法:让根节点表示区间[0,N-1],即所有N个数所组成的一个区间,然后,把区间分成两半,分别由左右子树表示。不难证明,这样的线段树的节点数只有2N
某某。 阅读(298) |
摘要: View Code 1 #include&stdio.h& 2 #define MAXV 100 3 #define INF 32767 4 //#include&graph.h& 5 6 void DispMat(MGraph g) 7 { 8 int i,j; 9 for(i=0;i&g.n;i++) 10 { 11 for(j=0;j&g.n;j++) 12 if(g.edges[i][j]==INF) 13 printf(&%3s&,&∞&); 14 else 15 ...
某某。 阅读(48) |
摘要: 题目连接:http://acm./showproblem.php?pid=1301题目大意:输入一个n,表示有n个村庄,然后下面是n-1行,每行开头有两个代表字母和数字,分别表示 起始点和与其相同的村庄的个数。然后就是与其相同的村庄和道路长度,求最小连通值。代码View Code 1 #include&stdio.h& 2 #include&string.h& 3 #include&stdlib.h& 4 int map[30][30]; 5 int vis[30]; 6 int prim(int n) 7 { 8 int ans = 0
某某。 阅读(27) |
摘要: 赤裸裸的最小生成树。题目大意就是输入一个N表示有n个村庄,然后输入n行n列,第i行j个元素表示i村庄离j村庄的路数多远(所以i行i列一般为零),然后输入q,表示q条路已修,然后输入q对数就可以了。(权值为零)。求使其n个村庄最小的连通值。需要注意的是可能会有重复的路出现,但是有不同的值。既然是求最小生成树,那么可以用prim算法在输入路的时候保证是最小的值。代码如下View Code 1 #include&stdio.h& 2 #include&string.h& 3 #include&stdlib.h& 4 int map[105][105]; 5 int
某某。 阅读(55) |
摘要: hdu 1879 继续畅通工程 克鲁斯 1 #include&stdio.h& 2 #include&string.h& 3 #include&stdlib.h& 4 typedef struct node 5 { 6 int u,v,w; 7 } 8 edge e[10005]; 9 int dg[105];10 void init(int n)11 {1213 for(i = 1;i &=i++)14 dg[i] =15 }16 int cmp(const void *a,const void *b)17 {18
某某。 阅读(43) |
摘要: 最近做了点并查集的题,感觉也挺简单的。下面对我这段时间关于并查集的学习,做一下小结。并查集的作用:并和查,即合并和查找,将一些集合合并,快速查找或判断某两个集合的关系,或某元素与集合的关系,或某两个元素的关系。并查集的结构:并查集主要操作对象是森林,树的结构赋予它独特的能力,对整个集合操作转换为对根节点(或称该集合的代表元素)的操作,一个集合里的元素关系不一定确定,但相对于根节点的关系很明了,这也是为了查找方便。并查集优化方法:按秩合并和路径压缩的配合使用,使得查找过程优化到极致。按秩合并,每次将深度小的树合并到深度大的树里面去,使得整棵树尽量矮;路径压缩,将当前节点到根节点路径上的所有点直接
某某。 阅读(29) |
摘要: 题目连接 http://acm./showproblem.php?pid=1285纯粹的拓扑排序View Code 1 #include &stdio.h& 2 #include &string.h& 3 int count,n,in[505],map[505][505],vis[505],sort[505]; 4 5 void topo(int x) 6 { 7 vis[x] = 1; 8 sort[count] = 9 count++;1011 for(i = 1;i &=i++)12 {13...
某某。 阅读(138) |
摘要: 题目连接 http://acm./showproblem.php?pid=2094对于是否有环,是通过一个N(节点数)的循环来判定。检查并更新每个节点的入度数。每找到一个入度唯一的节点就是它的临边取消,即让他的下个节点的入度减一;最后看看入度为0的节点数是否为N。这道题我还多加了个判断看看是否含有多个冠军的可能。这道题倒是没有那么麻烦,没打用到拓扑。View Code 1 #include &stdio.h& 2 #include &string.h& 3 struct node 4 { 5 char str[1005]; 6 }a[1005]; 7
某某。 阅读(66) |
摘要: 这道题数据比较大,得用领阶表,表示压力很大。。。。这道题有两个地方值得注意。第一个地方就是怎么确定是否有环,确定的办法就是就是根据离散数学(离散86,烧包加雄起~)的入度来说,当遍历一边并且更新后查找入度为零的点应该有N个(一共N个点)。用一个计数器num去计算是否为n。第二个地方就是方向思维。按理说我们应该用大的作小的父亲,但是当我们建立完一个拓扑表以后,我们如果按照以大的作为父亲的话,我们在计算最顶端的权值(暂且叫为权值吧),即最高点的薪水时,用起点与后续节点相比较加一时不准的,因为后面节点的值会随着向后遍历而改变,而对于遍历完的值无法改变。所以我们不如去找最为固定的点,即最小薪水的点,来
某某。 阅读(94) |
摘要: 不大明白啥叫记忆化搜索,但是PC学长说就相当于打表~不大懂= =。。。回头好好看一下题目链接http://acm./showproblem.php?pid=1501参考着崔老师的代码来的。View Code 1 #include&stdio.h& 2 #include&string.h& 3 4 char s1[205],s2[205],s3[410]; 5 int len,count,vis[205][205], 6 void dfs(int a,int b,int c) 7 { 8 if(leap) 910 if(v..
某某。 阅读(31) |
摘要: 题目链接:http://acm./showproblem.php?pid=1372大体意思是给你一个8*8的棋盘,然后给你两个字母与数字的组合,字母代表的是行,数字代表咧,让你找出从第一个组合的位置到第二个组合的位置,至少要走多少步。View Code 1 #include&stdio.h& 2 #include&string.h& 3 struct node 4 { 5 int x,y, 6 }q[100005]; 7 int map[15][15]; 8 int pro[15][15]; 9 int to[8][2] = {{2,1},
某某。 阅读(26) |
摘要: 题目链接http://acm./showproblem.php?pid=1253三维的BFS,跟地下城那道题很像。不用怎么解释。题目上说的很清楚。View Code 1 #include &stdio.h& 2 #include &string.h& 3 struct node 4 { 5 int x,y,z; 6 7 }q[1000005]; 8 int map[55][55][55]; 9 int pro[55][55][55],f,r;10 int to[6][3] = {{0,0,1},{0,0,-1},{0,1,0},{0,-
某某。 阅读(20) |
摘要: 题目链接http://acm./showproblem.php?pid=1241题目大意是@是可以走的,让你找出是不是有几块是连载一起的。跟挑战编程上的一道题木很想、View Code 1 #include &stdio.h& 2 #include &string.h& 3 4 char map[110][110]; 5 int vis[110][110]; 6 int to[8][2] = {{0,1},{0,-1},{1,0},{1,1},{1,-1},{-1,0},{-1,1},{-1,-1}}; 7 int n,m, 8 9 vo
某某。 阅读(33) |
摘要: 题目链接http://acm./showproblem.php?pid=1015题目的大意就是给以一串字符串和一个目标数字,让你从中找出5个字母,依次可以满足v - w^2 + x^3 - y^4 + z^5 = target这个关系式如果有多个就按字典序最大的输出。。。View Code #include &stdio.h&#include &string.h&#include &stdlib.h&int vis[100005];char str[100005];int sum,char end[10],temp[10];in
某某。 阅读(51) |
摘要: 题目理解听想人,就是看有没有办法让b变成m。View Code 1 #include&stdio.h& 2 #include&string.h& 3 int q[100000]; 4 int map[30][30]; 5 int pro[100000]; 6 int f,r; 7 8 int main() 9 {10 int n,i,j,len,11 char s[200];12 while(scanf(&%s&,s) != EOF)13 {14 leap = 0;15 memset(map,0,sizeof(map...
某某。 阅读(22) |
摘要: 题目链接:http://poj.org/problem?id=2251这道题坑爹的地方在于。。。我很悲剧的一个变量写错了~View Code #include &iostream&#include &stdio.h&#include &string.h&char map[35][35][35];int pro[35][35][35];int fro,struct node{ int l,r,c,}q[100005],v;int main(){ int r,l,c,i,j,k,leap,ii,jj,num
某某。 阅读(14) |
摘要: 一开始我看见那个simple out的时候很无语比我的数差好多感觉好大,以为是应该用2进制表示后来发现时special judge~~开始的时候数组要开的大一点。。。我re了两次没找到错然后加了3个零然后A掉View Code #include &stdio.h&__int64 q[],int f,r;int main(){ __int64 n,i; while(scanf(&%I64d&,&n)&&n) { f = r = 0; q[r++] = 1; while(f != r) { ...
某某。 阅读(28) |
摘要: 题目连接http://poj.org/problem?id=3278一开始作者道题的时候re了好几次。不知道为什么后来交的时候又WA然后发现得分情况一种是大于等于一种是小于一天刚学会就A了三道题比较满意。View Code #include&stdio.h&#include&string.h&struct node {}q[500005];int pro[500005];int fro,int main(){ int farm, while(scanf(&%d %d&,&farm,&co
某某。 阅读(31) |
摘要: fro & re 然后用结构体记录上一步的步数。View Code 图结构练习——BFS——从起始点到目标点的最短步数#include&stdio.h&#include&string.h&int map[];struct node{} q[2005];int pro[1005];int main(){ int d,e,s,i,j,a,b,t; while(scanf(&%d %d&,&d,&e) != EOF) { memset(map,0,s
某某。 阅读(29) |
摘要: View Code #include&stdio.h&#include&string.h&int map[105][105];int q[210];int pro[105];int main(){ int d,e,s,i,j,a,b,t; scanf(&%d&,&t); while(t--) { memset(map,0,sizeof(map)); memset(pro,0,sizeof(pro)); scanf(&%d %d %d&,&d,&e,&s); for(i
某某。 阅读(21) |
摘要: 典型的字典树使用一个flag来标记是否是一个句子。现在我们可以用一个cout来标记这条路径是否有单词存在过,存在过几次连接http://poj.org/problem?id=2001View Code #include &iostream&#include&stdio.h&#include&stdlib.h&#include&string.h&struct node{//用来存有多少个单词存在过。 int next[27];}word[20100];int num = 0;char s
某某。 阅读(27) |
摘要: 这道题根同性恋那道题相当像无非就是看他有没有合并过、记录合并之后的那个点的关系罢了。View Code //AC代码1#include &stdio.h& #include &stdlib.h& int set[100005],num[100006],h[100005]; int find(int x) { if(x!=set[x]) { int y = set[x]; set[x] = find(set[x]); num[x] = (num[x]+num[y])%2;//一定要写这个%2不知道为什么不加%2他就wa加上就ac我郁...
某某。 阅读(33) |
摘要: 首先看到这个题号的时候我想起了好公民,韩寒同学和他的不死鸟= =本人二蛋一枚,近日做了些并查集的东西但是一直不太明白怎么才能查节点路径,而且觉得要是迭代的时候加了r[x]的话会出现多加的情况,后来经网上高人指点(觉得还是好人多,虽然自己确实不想做好人了= =)明白了~一下是高人话语~voidmerge(int a,int b){ father[a]=b; place[a]+=number[b]; number[b]+=number[a];}intFind(int a)//检查找和路径压缩{if(father[a]==-1)int tmp=father[a];...
某某。 阅读(69) |
摘要: 跟那个排序二叉树的那个静态树一样,不大习惯静态的,但是不静态会tle,94msView Code #include&stdio.h&#include&stdlib.h&#include&string.h&typedef struct node{ int next[11];}int leap,trie tr[100010];new_node(){ count++; tr[count].flag = 0; for(i = 0;i & 10;i++) tr[count].next[i] ...
某某。 阅读(49) |
摘要: View Code // Little Bishops (棋盘上的象)// PC/UVa IDs: , Popularity: C, Success rate: high Level: 2// Verdict: Accepted // Submission Date: // UVa Run Time: 0.024s//// 版权所有(C)2011,邱秋。metaphysis # yeah dot net//// n * n 的棋盘可以最多放置多少个象而不互相冲突?我是这样考虑的,因为象的吃子方式为// 对角线吃子,则在棋盘上放置一个象后,它要么占据一条对
某某。 阅读(166) |
摘要: View Code #include&stdio.h&void process(int a[],int k){ for(i = 1;i &=i++) printf(&%d &,a[i]); puts(&&);}int construct(int a[],int k,int n,int c[]){ int pre[100]; for(i = 1;i & 100;i++) pre[i] = 0; for(i = 1;i &i++) pre[a[i]] = 1; int n2 = 0; f.
某某。 阅读(37) |
摘要: 给你一个字符长度N,然后给你一个各个字符对应的数值,然后输出长为n总和最小的字符串、并且要按字点顺序输出。View Code #include&stdio.h&#include&string.h&#include&stdlib.h&char vowels[] = &AUEOI&;char conson[] = &JSBKTCLDMVNWFXGPYHQZR&;char odd[220];char even[220];int cmp(const void *a,const void *b){ return (*(char
某某。 阅读(48) |
摘要: View Code #include&stdio.h&#include&string.h&typedef struct node{ char name[35];}team teams[1005];int search(char name[],int n){ for(i = 0;i &i++) ...
某某。 阅读(72) |
摘要: View Code #include&iostream&#include&string&#include&map&#include&cstdio&#include&stdio.h&#include&string.h&const int kMaxn(2007);int main(){ char str[10005],pair[3]; map&string,int& while(scanf(&%s&,str) != EOF) { if(str[0]
某某。 阅读(65) |
摘要: 这道题是自己写着玩的,看看能不能掌握简单的回溯,是挑战编程上的一个小程序自己打下来的。留个纪念。还有一个回溯是一个牛喝水的那一道。八皇后就不多少了,我想基本提到回溯法的树上都会提及八皇后和它的代码。View Code #include &stdio.h& #include &stdlib.h& int leap = 0; void process(int a[],int k) { printf(&{&); for(i = 1;i &=i++) if(a[i]) printf(& %d&,i); print
某某。 阅读(16) |
摘要: 堆排序堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。 (1)用大根堆排序的基本思想 ① 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区 ② 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由此得到新的无序区R[1..n-1]和有序区R[n],且满足R[1..n-1].keys≤R[n].key ③由于交换后新的根R[1]可能违反堆性质,故应将当前无序区R[1..n-1]调整为堆。然后再次将R[1..n-1]中关键字最大的记录R[1]和该区间的最后一个记录R[n-1]...
某某。 阅读(34) |
摘要: 这道题我就不解释了,无非就是枚举取字串,然后kmp进行比较。本来不大想贴着道题的。但是我很悲剧的是为了省事直接在上一道KMP上贴的代码,然后用了一个memset函数,我的pre数组开刀了一百万= =。不过还是比较值得的,花了时间不少但是还是知道了memset是需要花费时间的。View Code #include &iostream&#include &stdio.h&#include &string.h&int pre[100];void predeal(char s[]){ int len,i,j; len = st
某某。 阅读(27) |
摘要: 这道题跟上一道题目差不多。一开始WA了一次。我以为他给的字符串本身就是周期串,然后写完交了就WA,崔老师又说这个串不一定是周期串然后果断改了上一题的笨法子,然后WA,然后又改成现在的算法= =。。。然后又PE!!!!你妹的一看还得输出空行~我了个去~View Code #include &iostream&#include &stdio.h&#include &string.h&int pre[1000005];void predeal(char s[]){ int len,i,j; len = strlen(s);
某某。 阅读(56) |
摘要: 题目http://poj.org/problem?id=2406/*一开始不大理解,写了个笨方法,就是从s[0]开始找。因为一定是从s[0]开始的子串只要len==len1*count 就直接输出,后来发现tle /* memset(s1,0,sizeof(s1)); for(i = 0;i &i++) { s1[i] = s2[i]; predeal(s1); for(i = 0;s2[i] != '\0';i++) printf(&%d &,pre...
某某。 阅读(138) |
摘要: 连接:目前uva挂掉了~= =。。。大意是给你N个字符串,每个串的第一个单词代表国家,后面的单词表示女人,要你找出每个国家出现了几个女女。按字字典书序输出。一开始re,发现数组开小了。后来wa很郁闷,最后发现没有删除中间测试数据的输出= =。。。以下是代码View Code #include&stdio.h&#include&string.h&#include&stdlib.h&typedef struct node{ char con[205]; char girl[205];}int cmp_string(wokao *a,
某某。 阅读(83) |
摘要: 从昨天晚上到今天上午一直再rererererererererererererere,最后中午闲着没事在uva上用c++交了一边,结果是= =。。。AC泪奔inghttp://poj.org/problem?id=1001这道题在poj上和uva上不大一样 uva结果是0的时候输出.,poj要输出0View Code #include&stdio.h&#include&string.h&#include&stdlib.h&int a[2005],b[2005],res[2005];int multiply(int n,int len){ int k,max,j
某某。 阅读(17) |
摘要: 题目连接 :http://poj.org/problem?id=2524题目大意。已知有n个大学生,其中有m对宗教信仰相同的学生,请你估算这n个学生中最多有多少种宗教信仰。不多说直接上代码~View Code #include&stdio.h&int set[50005];int find(int x){ int r = while(set[r] != r) { r = set[r]; }}void merge(int a,int b){ a = find(a); b = find(b); if(a == ...
某某。 阅读(23) |
摘要: 这道题一开始看到数很大,马上就想到是大数的问题,然后做了一个__int64的一个表,发现二十多就很不准了,然后就一直以为是大数的问题。练习的时候发现会做的5道题已经做完了,在做也没意思了就开始去网上查答案,然后发现~是一道很明显的数学问题。题目连接:http://acm./showproblem.php?pid=1060我们可以这么考虑,一个数用科学计数法可以记做a1*10n1, ,同样numnum= a*10n,也就是说我们需要求的就是a整数部分,这样用数学的取对数我们可以得到x= num*lg(num) = n+lg(a);所以lg(a) = x-n,也就是说,a =
某某。 阅读(30) |
摘要: 题目 :http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=276一开始WA了好多遍后来发现是自己的少了中间为零的判断~#include&stdio.h&#include&string.h&int main(){ char s[1000],o; long a,res[1000]; while(scanf(&%s %c %ld&,s,&o,&a)
某某。 阅读(58) |
摘要: 忽略了零的时候的情况啊!!!题目连接http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1047#include&stdio.h&#include&math.h&#include&string.h&char a[300],b[300];int f[600],int main(){ while(scanf(&%s%s&,a,b) == 2) { int len1,len
某某。 阅读(62) |
摘要: 题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=96&page=show_problem&problem=1756这次主要学会了一个字符串的快速排序函数;int cmp_string(const void* _a,const void* _b){ char* a= (char*)_a; char* b= (char*)_b; return strcmp(a,b);}qsort(word,max,sizeof(word[0]),cmp_string
某某。 阅读(33) |
摘要: 这是我原来51cto上博客移植过来的。凑合看吧。不过真的忘了。View Code #include &stdio.h& #include&string.h& int main() { int i,k,l1,l2,ii,j, char s1[1001],s2[1001]; while(gets(s1)!=NULL) { gets(s2); l1=strlen(s1); l2 = strlen(s2);...
某某。 阅读(64) |
摘要: Destroy the Well of LifeTime Limit:
MS (Java/Others)Memory Limit:
K (Java/Others)Total Submission(s): 556Accepted Submission(s): 197Problem DescriptionIn the game of DotA (Defense of the Ancient), there are two opposite legions called The Sentinel and The Scourage.Now The Scour
某某。 阅读(28) |
摘要: Black and white paintingTime Limit: 1000MS Memory limit: 65536K题目描述You are visiting the Centre Pompidou which contains a lot of modern paintings. In particular you notice one painting which consists solely of black and white squares, arranged in rows and columns like in a chess board (no two adjacen
某某。 阅读(108) |
摘要: 很郁闷。。。一直以为是精度问题。。。其实还就是精度问题==。。。另外还有一个问题就是看错题了,最后的那个数字我写成了double 型。后来改正后就AC了= =。。。刘老师不在的话,我想说一句“我怀念我的103小马甲= =”Ballot evaluationTime Limit: 1000MS Memory limit: 65536K题目描述Before the 2009 elections at the European Parliament, Bill and Ted have asked their friends to make guesses about the outcome of
某某。 阅读(58) |

我要回帖

更多关于 tp警告码3 1021 10005 的文章

 

随机推荐