- 博客(30)
- 收藏
- 关注
原创 一些小心得
如题1.字符与数字转换‘1’ == 1 + ‘0’;2.字符串按字典序排序//C 版本struct node{ char s[30];}t[10000] = {0};int cmp(node a, node b){ return strcmp(a.s,b.s)<=0;}int main(){ sort(t,t+len,cmp);}
2012-04-14 21:53:15
542
转载 sacnf 输入格式相关
scanf函数是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意。 scanf函数的一般形式scanf(格式控制,地址表列)int scanf(char *format[,argument,...]);“格式控制”的含义同printf函数;“地址表列”是由若干个地址
2012-03-17 15:12:54
1250
原创 数据的离散化
有些数据本身很大, 自身无法作为数组的下标保存对应的属性。如果这时只是需要这堆数据的相对属性, 那么可以对其进行离散化处理!离散化:当数据只与它们之间的相对大小有关,而与具体是多少无关时,可以进行离散化。例如9 1 0 5 4 与 5 2 1 4 3 的逆序对个数相同。设有4个数:1234567、123456789、12345678、1234
2012-07-06 20:53:33
22000
7
原创 [刷提笔记] Codeforces187 A Permutations
题目:Codeforces187 A PermutationsTags:greedy地址:http://codeforces.com/contest/187/problem/A题目大意:给出两个等长的整形序列 S1,S2, 求将S1变换至S2要至少要多少步。每个步骤可将当前的最后一个元素放置到任一位置。大概思路:完全没思路啊! (>_后来看别人代码发现由于题目
2012-05-31 22:24:16
1299
原创 [日常] 关于求素数
素数是除了1和它本身之外再不能被其他数整除的自然数。由于找不到一个通项公式来表示所有的素数,所以对于数学家来说, 素数一直是一个未解之谜。像著名的 哥德巴赫猜想、孪生素数猜想,几百年来不知吸引了世界上多少优秀的数学家。尽管他们苦心钻研,呕心沥血,但至今仍然未见分晓。自从有了计算机之后,人们借助于计算机的威力,已经找到了2216091以内的所有素数。求素数的方法有很多种,最简单的方法是根
2012-05-29 23:49:41
926
原创 [刷题笔记] FOJ 1058 浮点误差
题目:Problem 1058 粗心的物理学家地址:http://acm.fzu.edu.cn/problem.php?pid=1058心得:乍一看题目, 水啊。结果.................(┬_┬)原来要考虑到浮点误差, 需要从最后一项加起 代码:#include#include#include#include#includeusi
2012-05-25 08:04:52
927
原创 [刷题笔记] Codeforces 131C 组合数的写法+平均数防爆
题目:Codeforces 131C 地址:http://codeforces.com/problemset/problem/131/C心得:以前写组合数一般是先算出上下两项然后相除,但是这次算的时候越界了,WA了3次。。#include typedef long long ll;using namespace std;ll c(ll a, ll b){ ll ans=
2012-05-21 23:26:06
2115
原创 [PKU] 2157 没做完的题目
#include#includechar map[25][25];int n, m;int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}}; int kn[5];int kg[5];bool fd;int open;using namespace std;void visit(char s){ int i, j; for(i=1;i<=n;i
2012-05-18 16:53:00
698
原创 [挖坑]搜索相关
算法中最基本和常用的是搜索,这里要说的是,有些初学者在学习这些搜索基本算法是不太注意剪枝,这是十分不可取的,因为所有搜索的题目给你的测试用例都不会有很大的规模,你往往察觉不出程序运行的时间问题,但是真正的测试数据一定能过滤出那些没有剪枝的算法。实际上参赛选手基本上都会使用常用的搜索算法,题目的区分度往往就是建立在诸如剪枝之类的优化上了。 什么是搜索算法呢?搜索算法是利用计算机的高性能来有
2012-05-14 23:31:47
1254
原创 [刷题笔记] Codeforces 115B ,一个清楚的大脑
在脑袋一团浆糊的情况下瞎敲了俩小时,最后以一种极其狗血的方式AC了。最后AC的代码跟shit一样 就不贴了题目:Codeforces 115B地址:http://codeforces.com/problemset/problem/115/B心得:题目不难。要想清楚。代码:别人的#include#include#include#includeusing
2012-05-12 23:36:26
1050
原创 [刷题笔记]Codeforces 181B 检测某点是否存在
题目:Codeforces 181B地址:http://codeforces.com/submissions/GreyCrow/page/1大意:给出N组点, 问这些点里存在几个点是其他俩点的中点心得:第一次暴力果断超时。 找不到好的方法 放弃 [无奈]╮(╯-╰)╭ 看别人代码 原来可以这样标记一个点是否存在。建立一个数组 ex[n][n],初始值全为零. 每当读入一个点
2012-05-10 23:39:37
841
原创 [刷题笔记]HDU2049 错排公式
题目:HDU 2049 地址:http://acm.hdu.edu.cn/showproblem.php?pid=2049思路:组合数+错排心得:所谓的错排公式 Dn=[n!/e+0.5]只是近似值!4次WA的代价啊!应该写成这样当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置,各不
2012-05-10 22:58:43
1290
原创 [刷题笔记]Codeforces 105A 获取浮点数的整数部分,浮点误差
题目:Codeforces 105A地址:http://codeforces.com/problemset/problem/105/A要点:获取浮点数的整数部分double x一般想法是int(x),但是实际上存在浮点误差例如(int)(8700*0.94) = 8177;8700*0.94 = 8178;原因是,在C语言中, 8700 * 0.94 =
2012-05-07 20:27:44
1185
原创 [刷题笔记]Codeforces 15B
题目:Codeforces 15B laser地址:http://codeforces.com/problemset/problem/15/B心得:仔细考虑数据范围,包括过程量与最终结果尽量不要写for(int i=0;;)代码:#include#include#include#includeusing namespace std;int m
2012-05-07 17:08:13
887
原创 [训练记录]
2012年5月6日水爆了,最水的一题WA了两次才过,第一次因为题目没看清,第二次数组范围开小了。(>_然后去找过的人比较多的题目,于是开始写起来,结果因为思路出现误区,卡了大约一个半小时,过了以后发现真水啊!接下来,找题,开始写,WA....WA.....然后这个…… 呃~~ -______-" ,就木有然后了。敲了五小时的代码,各种脱力啊。回宿舍后歇了一会,滚去做
2012-05-07 00:03:21
764
原创 [刷提笔记] 规则定义 POJ2065
在脑袋里全是浆糊的WA了一晚上,以后才意识到~题目:POJ2065地址:http://acm.fzu.edu.cn/problem.php?pid=2065感想:╮(╯▽╰)╭心得:╮(╯▽╰)╭自己定义规则,将所有数字变为‘1’,e/E变为‘e’,小数点变为‘.’ ,正负号变为 ‘+’ 代码:234 ms196KB
2012-05-04 09:09:14
716
原创 [str函数]只能把看到的记下来啦!
一.strtok原型:char *strtok(char *s, const char *delim);功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。说明:strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为\0 字
2012-05-03 22:38:37
639
原创 [字符串]HDU1106 字符串相关练习
题目:HDU 1106地址:http://acm.hdu.edu.cn/showproblem.php?pid=1106解题:最近看了很多关于string的函数,拿这题试下手。心得:编译器要选C++啊 魂淡!代码:version1:15MS336K923 B(一无是处。。╮(╯▽╰)╭)#include#in
2012-04-28 23:20:48
581
原创 [算法运用]KMP实战演练
看完花名,滚来写总结了。( >﹏题目:HDU1358地址:http://acm.hdu.edu.cn/showproblem.php?pid=1358大意:求字符串子串最大分割自我循环次数。(表达的不好)解题: 第一念头想着用KMP两层循环切割字符串,第一层处理原串,第二层处理模式串。然后费了好大的劲写了出来,结果,结果超时了 (┬_┬),(喂,这是理所应当的吧)。
2012-04-10 15:09:07
523
原创 [个人总结]首次师大校赛
时间:2012年4月8日那是个下着小雨的日子。嘛,这是首次组队参加比赛,就过程而来还是蛮有趣的,至于结果嘛。(┬_┬)说下比赛的情况吧,总共有11道题,全英文Σ(っ °Д °;)っ ,这告诉我们学好英文是多么的重要啊!全程我其实就敲了一题最水,其他要么没想到,要么想到了没实现。反思如下:1.没有递推的想法曾经在校赛见过一道经典的递推,当时就没出来,后来查看别人的代码,恍
2012-04-09 18:00:43
1312
原创 [暂定]KMP总结
算是正式开始学习的第一个算法,遇到了诸多困难,花了许多时间逐一解决,故整理思路留此文以便后来翻阅。第一部分 字符串匹配1、朴素的模式匹配BF算法与KMP算法的时间复杂度比较 KMP算法是一种线性时间复杂的字符串匹配算法,它是对BF算法(Brute-Force,最基本的字符串匹配算法的)改进。对于给的原始串S和模式串P,需要从字符串S中找到字符串P出现的位置的索
2012-04-07 23:16:21
688
原创 [刷题笔记]HDU2028-局部越界
题目:HDU2028 Lowest Common Multiple Plus地址:http://acm.hdu.edu.cn/showproblem.php?pid=2028要点:在题目的诱导下没怎么像就用了int,结果计算最大公约数时越界(#°Д°) !感想:这是道水题 ( ′д` )…Σ(っ °Д °;)っ 我更水。代码:#
2012-04-03 16:39:20
552
原创 [刷题笔记]codeforces 44B - 通过判定减少循环层数。
题目:codeforces 44B Cola地址:http://codeforces.com/problemset/problem/44/B结果:木有结果;要点:刚看到题目第一念头是三层循环暴力破解,结果当时是超时。然后尝试做简单的优化,依旧超时。(┬_┬)后来才发现,原来通过判定,可以节省一层循环。感谢我还是太差劲了第一次用codeforces,感觉不
2012-04-02 09:52:21
928
原创 [刷题笔记]HDU2093-sscanf实战以及sort函数的运用
题目:HDU2093地址:http://acm.hdu.edu.cn/showproblem.php?pid=2093结果:6次 (┬_┬);要点:复杂条件的sort函数的使用,即cmp函数的书写;sscanf的实际应用;感想:各种不熟练啊!多练多写;o( ̄皿 ̄///) !教练,我要学C++!代码:#include#include#inclu
2012-04-01 21:35:56
707
原创 [刷题笔记]想的太少了。。
题目:HDU1088 Write a simple HTML Browser地址:http://acm.hdu.edu.cn/showproblem.php?pid=1088结果:8次PE。要点:首字符的判定,用于处理空格;结尾是否输出换行符的判定;感谢:其实是道水题Σ(`д′*ノ)ノ !但是太多方面欠考虑导致漏洞百出,果然还是要多思考啊。AC代码:#i
2012-04-01 21:28:33
731
转载 [排序]SORT QSORT
一.sort函数的用法 排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。 这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,
2012-03-23 15:52:13
1236
1
原创 良好的代码风格
一.“{”位置的两种风格{ 和 }独占一行,且位于同一列,与引用它们的语句左对齐,便于检查配对情况位于同一层 { 和 } 之内的代码在 { 右边数格处左对齐,即同层次的代码在同层次的缩进层上。二.变量的对齐规则数据类型 + N个TAB + 变量名 + [N个TAB ] +=+[初始化值] ;例char name[20];
2012-03-17 20:49:06
1142
转载 输入字符串时输入空格
1.最容易的,将一个字符串分为一个一个字符输入 char s[100]; int i=0; while(scanf("%c",&s[i]),s[i]!='\n')i++; s[i]='\0'; //遇到换行停止输入,并且将换行替换为\0 printf("%s
2012-03-17 15:10:29
4151
转载 sscanf函数中正则表达式的运用
在处理字符串的程序当中,经常会分析字符串,从一大长串的字符串截取我们需要的数据,这如果通过自己手写函数来分析,虽然可以,但当你知道sscanf的功能,那就自己写函数分析就显得多此一举。这些函数的使用都很简单,总结一下,等下次使用一目了然。俗话说:好记性不如烂笔头,记录下来就是效率。以下源代码是本人测试的源文件,附带讲解注释。#include #include #includ
2012-03-17 10:04:35
1215
转载 scanf、sscanf中的正则表达式
看了几篇介绍sscanf函数,真是发现自己好多东西没理解透。第一篇:此文所有的实验都是基于下面的程序:char str[10];for (int i = 0; i 执行完后str的值为str = "!!!!!!!!!!"我们把str的每个字符都初始化为惊叹号,当str的值发生变化时,使用printf打印str的值,对比先前的惊叹号,
2012-03-17 09:53:32
904
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅