摘要:
为了快速解决高精度问题,总算是要来接触java了,算上这学期要开java的课了,好好学习吧! 拿来练手的是hdu的1002,高精度加法。 1 import java.util.*; 2 import java.math.*; 3 import java.io.*; 4 5 public cl... 阅读全文
摘要:
由于二维字符数组的第二维没有赋值运算符,即不能对整个一维数组进行赋值,因此是无法直接对二维数组用sort进行排序的,解决办法有二种:代码一: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 struct Data 7 {... 阅读全文
摘要:
昨天为学弟学妹们出省赛选拔赛题,特意找了一个搜不到题解的题。可是没想到把自己也难住了。。。 原题链接:CSU 1177 总之就是现在还没A出来。。。核心思路应该是没问题的,就是题中提到过一句,每行输入不超过80字符,如果我使用gets来读入的话,如果存在相邻的两行都是80字符的话,g... 阅读全文
摘要:
都是两种效率高而且常用的排序方法,今天来总结下。 先说快排: 首先,快速排序的时间复杂度为nlogn,其思想实质为分治法。而这分治法的基本思想为以下三点: 1.先从数列中取出一个基准数。 2.在分治的过程中,比这个基准数小的数全部放到这个基准数的左边,反之则放到右边。 3.然后再对由第... 阅读全文
摘要:
三分之一的通过率的字符串 题意为,输入一个S串,有一个空串T。对S串有两种操作,一是取出S串的头放入T串的尾,二是取出S串的尾放入T串的尾。要求是要使得T串的字典序最小。 从题意来看是一个很明显的贪心思路。那么想到这一步其实比较接近答案了,但是需要注意的一点是当S串的头和尾相同的时候,那么这... 阅读全文
摘要:
1. 括号匹配的四种可能性: ①左右括号配对次序不正确 ②右括号多于左括号 ③左括号多于右括号 ④左右括号匹配正确2. 算法思想: 1.顺序扫描算数表达式(表现为一个字符串),当遇到三种类型的左括号时候让该括号进栈; 2.当扫描到某一种类型的右括号时,比较当前栈顶元素是否与之匹配,若匹配,退栈继续判断; 3.若当前栈顶元素与当前扫描的括号不匹配,则左右括号配对次序不正确,匹配失败,直接退出; 4.若字符串当前为某种类型的右括号而堆栈已经空,则右括号多于左括号,匹配失败,直接退出; 5.字符串循环扫描结束时,若堆栈非空(即堆栈尚有某种类型的左括号),则说明左括号多于右括号,匹配失败; 6.正常结 阅读全文
摘要:
这一个半月主要来学习数据结构。首先是清明节前的安排:树状数组、线段树、并查集、Tire树.清明到5月底就用来清理吉大数据结构模板好了。什么最长子序列,后缀数组之类的;还有罗得安的数据结构里的堆、哈希表、二叉搜索树(STL),矩阵(分治)(矩阵快速幂)。送给自己的话:必须不断的提醒自己:放下浮躁,静心阅读;放下担忧,勇敢走自己的路;放下贪婪,有失必有得;放下自卑,相信自己;放下虚荣,别自以为是;放下自私,学会懂得感恩;放下懒惰,继续努力。 阅读全文
摘要:
这题寒假也没搞出来,但今天花了一小时终于搞定。 题意是输入一串数字字符,把‘5’当作空格,然后把被分割开的数字进行排序输出。 首先是字符串输入,按照高精度的处理方法,数值低位放到数组低位。(字符串型的S转到整形的A) 然后,开始对A数组遍历,将第i位的数值乘以10的i次方,累加到B数组(整形)。遇到5则continue,当然还要对累加时的变量进行重置。 上述的做法有两个点要特别注意到,如果A数组的最后一位不是5,而整个数组里5的数量不为0,则B数组的个数要加1,二是如果数组里5的数量为0,则B的个数也要加1。 1 #include 2 #include 3 #include ... 阅读全文
摘要:
位运算应用口诀清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或移位运算要点 1它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 " >"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被挤掉,对于左边移出的空位一概补上0。位运算符的应用 (源操作数s 掩码mask)(1) 按位与-- &1 清零特定位 (mask中特定位置0,其它位为1,s=s&mask)2 取某数中指定位 (mask中特定 阅读全文
摘要:
今天很慵懒啊,啥事也没做,把高精度复习了一遍(hdu1002)。首先俩字符串数组输入,然后按字符串的长度逆序转到整形数组里(主要是为了把数值的最低位移动到数组的最低位,方便进位);然后对应的位相加存储到一个新的整形数组里,这时不考虑进位;最后遍历数组,处理进位问题,再倒序输出,即是答案。还有一个题hdu1003,是说求一个数列里的子序列中的最大和,这个还是没有想清楚啊。现在想的大概的思路是,找到负值最大的数的位置,然后就能把数列划分为两个小数列,(如果在数列的一头或一尾那么就还是一个数列)求其和。但是后续可能会有新的问题,比如可能要再划分一次,才能找到最大的子序列和。(突然想起这有点像快排的思 阅读全文