上一页 1 ··· 9 10 11 12 13 14 下一页
摘要: http://poj.grids.cn/practice/2736/ 很简单的一个大整数减法题,主要是想做大整数除法题目,看了网上的资料说是要用到大整数减法,所以就拿来练练手了 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 using namespace std; 5 #define N 110 6 char str1[N],str2[N]; 7 int a[N],b[N],c[N]; 8 int main() 9 {10 int n,i,j;11 int len1,len2; 阅读全文
posted @ 2012-01-05 16:22 AC_Girl 阅读(280) 评论(0) 推荐(0) 编辑
摘要: http://acm.hrbeu.edu.cn/index.php?act=problem&id=1001&cid=22题目是最短路的一个小变形。我们平时求的最短路都只是包含固定的长度,这里加了一个过红绿灯的时间。所以再走到一个路口时要判断是红灯还是绿灯。在更新辅助数组的时候,如果碰见的是绿灯那就无所了,但是如果碰见的是红灯,则要把等红灯的时间考虑上。其实只要知道了如何判断是红灯还是绿灯,这道题还是很简单的。判断是绿灯的条件为:(1) map[i][j].t==0(2) ((dis[j]+map[j][i].t)/map[j][i].t)%2==1;当然其他的就是红灯的情况了# 阅读全文
posted @ 2011-12-07 21:47 AC_Girl 阅读(221) 评论(0) 推荐(0) 编辑
摘要: http://acm.hrbeu.edu.cn/index.php?act=problem&id=1006&cid=22题目的意思:任何一个简单图都有一个度序列(度序列的定义是,对于简单图中每个顶点的度数),那么反过来,任给一个非负整数的非递增序列是不是就一定对应着一个简单图呢?现在题目中就是给你这样的一段非负整数序列然你判断是否可以画出一个简单图。解题思路:根据Havel定理:对于n>1,大小为n的整数序列d是简单图的度序列,当且仅当d''是简单图的度序列。其中d''是删除d中最大的元素a后(a<n),并且将紧跟的a个最大元素依次减 阅读全文
posted @ 2011-12-07 20:39 AC_Girl 阅读(207) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=292(水题)题目就是多个大数相加没什么可说的注意点还是那几个,发现大整数的题目多做几道,你就会知道都注意什么了。第一次做的时候什么都不知道考虑,贡献了好几次的WA 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 using namespace std; 5 #define M 1000000 6 char str[M]; 7 int a[M],b[M]; 8 i 阅读全文
posted @ 2011-12-03 12:18 AC_Girl 阅读(231) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1205同样是大整数加法的练手题目。题目意思就是:二十进制的大数相加,注意进位,注意字母和数字间的转换和都是零时有输出就可以了 1 #include<string.h> 2 #include<iostream> 3 #include<stdio.h> 4 using namespace std; 5 #define N 110 6 char str[N],sbr[N],t[N]; 7 int a[N],b[N],c[N]; 8 int m 阅读全文
posted @ 2011-12-03 12:14 AC_Girl 阅读(177) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2001题目很罗嗦,猛一看还以为多麻烦呢,因为刚开始的时候题目提到要把所给的那些数都倒过来,但是好在后面又说了,把所给的数倒过来相加后再倒过来输出。这就好比是负负得正,所以这就是一道大整数的水题了。只要注意前导零的处理,和输入都是零时输出零就可以A掉了http://acm.hdu.edu.cn/showproblem.php?pid=2100 这是HDU 一道类似的题目 1 #include<stdio.h> 2 #include<string.h> 阅读全文
posted @ 2011-12-03 12:03 AC_Girl 阅读(216) 评论(0) 推荐(0) 编辑
摘要: http://acm.hrbeu.edu.cn/index.php?act=problem&id=1004&cid=21这道题类似与hdu的1095http://acm.hdu.edu.cn/showproblem.php?pid=1059题目意思:给你一串数,让你找能不能使的这些数分成6个集合,而且每个集合内元素的和为{sum(总)/6}思路:首先呢如果sum(总)%6不为零,则一定不能平分.如果为零给给定的数串排序,如果a[N]>{sum(总)/6}也不能平分,如果不大于,那么就按正常的dfs找就行了。#include<stdio.h>#include&l 阅读全文
posted @ 2011-12-02 12:09 AC_Girl 阅读(213) 评论(0) 推荐(0) 编辑
摘要: http://acm.hrbeu.edu.cn/index.php?act=problem&id=1003&cid=20题目的意思:给你一段字符串,让你输出这段字符串是由某个它的子串最大的重复次数n满足str=sbr^n,sbr为子串。解题思路:首先由KMP算出所给的这段字符串的K值,然后再由2*next[len(strlen(str))]和len的关系来确定n的值(1),若前者小于后者,则最小重复串的长度为len,即n=1;(2),若前者大于等于后者 1),如果len%(len-next[len])==0 则最小的重复串为len-next[len],即重复次数n=len/(l 阅读全文
posted @ 2011-12-02 11:34 AC_Girl 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 一道简单的求解最长上升子序列的问题。感觉这道题的巧妙之处就是在查找最长上升子序列的时候用到了变形的二分查找。很是巧妙,因为一般的找上升子序列的方法,用于这道题是超时的。巧妙的代码为: else { int l=1; int h=max; while(l<=h) { int mid=(l+h)/2; if(flag[mid]>a[i].r) ... 阅读全文
posted @ 2011-11-27 21:55 AC_Girl 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 一开始我还在那里想用组合公式做,就是把所有的从连续为M 到N 所有的可能都写一下,可是根本都不行。一个是数太大,一个是情况太多了。今天看见AV_VON的解题报告,原来,原来是DP啊 我们根据他的数据要求开一个数组,大小为2001, dp[2001]。这个数组用来存放子问题的解,比如dp[i]就代表投完第i个硬币时,已有连续m个正面的概率。具体假如m是2,dp[0],dp[1]肯定0,因为投币0次或1次不可能出现连续两次正面。分三种情况讨论:1. n小于m,即dp数组下标i要小于m的时候,概率值都为0,原因如上所述。2. 下标i等于m,也就是说n等m,投多少次刚好多少次是正面,这个概率是0.5的 阅读全文
posted @ 2011-11-27 21:50 AC_Girl 阅读(174) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 下一页