算法竞赛入门经典(刘汝佳)代码抄写&&泛读
文章平均质量分 64
_N_ull_
“要敢拼,能吃苦,玩命学”--广外女神
展开
-
UVa-11729 - Commando War:简单题
因为“交代任务的时间”可以是紧凑,连续的,第一次提交时,想当然的认为答案是 按照“执行任务时间”从大到小排序后 “交代任务时间”总和加上最后一个执行时间,WA后来考虑到排序后的最后一个人执行完的时间 不一定是最晚的,因为很有肯能前一个人的执行时间大于最后一个人的执行时间。至于为什么要按照“执行任务时间”从大到小排序,凭直觉的贪心吧,后来参考了刘的代码(这次思路又一样)并解释的原创 2015-11-21 14:38:43 · 281 阅读 · 0 评论 -
UVA - 1584 Circular Sequence
书中代码是基于C的 我写的是基于C++ STL的 #include #include #include #include #include #include #include #include using namespace std;int main(){ int T; string S; scanf("%d",&T); while(原创 2016-06-04 11:31:56 · 207 阅读 · 0 评论 -
UVA - 232 Crossword Answers :单纯模拟
思路:首先在Num二维数组中按要求把数字填上,然后遍历Num数组按要求输出单词即可。注意:输出单词前的数字要占三位···#include#include#include#includeusing namespace std;int main(){#ifdef LOCAL freopen("in1.txt","r",stdin);#endif int原创 2016-06-08 20:02:00 · 226 阅读 · 0 评论 -
UVA - 1368 DNA Consensus String :简单字符串处理
思路:用4个数组 存放每个字符串中对应元素下标的A G C T 的个数比如,所给样例①中 A[0]=1,G[0]=0,C[0]=0, TT[0]=4;这样,在 A G C T 对应下标寻找出现次数最多的,同时为最终字符串贡献一个字符;由于按照ACGT的顺序比较 保证了出现次数相同的情况下 字典序最小的那个字符作为最终输出字符串的贡献字符;原创 2016-06-08 21:57:31 · 310 阅读 · 0 评论 -
UVA - 489 Hangman Judge :模拟···WA了N次
书中代码 #define LOCAL#include #include #include #include #include #include #include #include #include #include using namespace std;string S1,S2;int lose,win;int chance,L;转载 2016-06-25 20:00:42 · 244 阅读 · 0 评论 -
UVA - 133 The Dole Queue 单纯模拟:1A
#include #include#include #include #include #include #include #include #include using namespace std; #define LOCALint a[21];void go(int A,int B,int N){ int lef=N; int P1=0,P2=原创 2016-06-26 12:26:56 · 340 阅读 · 0 评论 -
UVA - 10340 All in All :简单字符串处理
这两天忙着校运会,没更新,现在补回来。明天就去盛乐了,未来的两天,110米栏and400米栏,祝我好运。运动会那两天,把笔记本带上,随手更新几个简单题···202那题 不会做,有点数论的感觉,我短板···先A了这个简单题····其实不想贴出来的···仅仅为了更新···博文···而已···#include #include #include #include #inc原创 2016-06-11 21:42:54 · 378 阅读 · 0 评论 -
UVa- 227 - Puzzle:单纯模拟 & 数据(字符数组)读入练习
Move函数写得太菜了···一个switch可以减少很多代码量···单纯模拟:代码思路清晰#define LOCAL#include#include#include#includeusing namespace std;char Puzzle[5][7];int X,Y;string Inst;int Round=0;int NoFinal=0;void Mo原创 2016-06-06 21:49:02 · 252 阅读 · 0 评论 -
涨知识: UVA - 213 Message Decoding
#include #include#include #include #include #include #include #include #include using namespace std; #define LOCAL//UVa213 M Decodingint readchar(){ for(;;){ int ch=getcha转载 2016-07-01 21:06:45 · 275 阅读 · 0 评论 -
UVA - 1587 Box :锻炼了我的模拟能力
思路:算是找规律吧 按照一定规则重新排列六个面 详情见代码 比如 样例一初始状态1345 25842584 6832584 1345683 1345683 13452584 683排列后状态683 1345683 1345683 2584683 25841345 25841345 2584首先比较前两个面 如果相等原创 2016-06-19 21:32:31 · 261 阅读 · 0 评论 -
经典重拾-第一部分 第三章-数组和字符串
Note在算法竞赛中,常常难以计算出所需要的数组大小,数组一般会声明的稍微大一些。在空间够用的前提下,浪费一点不会有太大影响【哦···知道了···可是···空间不够用是什么情况?#inlcude数组a前K个元素复制到b memcpy(b,a,sizeof(int)*k) memcpy(b,a,sizeof(double)*k)全部复制 memcpy(b,a,sizeof(a转载 2016-06-04 10:57:27 · 224 阅读 · 0 评论 -
UVa-340 - Master-Mind Hints
大意:给定原序列和猜序列,统计有多少数字位置相对应(A),有多少数字在两个序列都出现但位置不对应(B)。思路:先确定位置正确数字的个数 A,可直接比较得出。然后对于每个数字(1-9)确定在两个序列中都出现的个数 记为c1,c2 min(c1,c2)就是该数字对B的贡献,最终 B的值等于在两个序列中都出现的 公共数字的个数,再减去A的部分,即得最终要求的B。#includ原创 2015-11-18 00:26:34 · 288 阅读 · 0 评论 -
UVa-401-Palindromes
#include#include#include#include#include//#define LOCALusing namespace std;const char* s1[]={"not a palindrome.","a regular palindrome.","a mirrored string.","a mirrored palindrome."};const ch原创 2015-11-17 10:45:01 · 277 阅读 · 0 评论 -
UVa-1585 - Score:simple
居然调了一个小时···一开始每个测试样例后面都有空格···注释掉AC了···//UVa#include#include#include#include#include#include#include//#define LOCALusing namespace std;#define maxn 20005int main(){#ifdef LOCAL原创 2015-11-24 09:04:26 · 257 阅读 · 0 评论 -
UVa-1225 - Digit Counting:simple
#include#include#include#include#include#include//#define LOCALusing namespace std;#define maxn 10000+5int main(){#ifdef LOCAL freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout原创 2015-11-25 00:02:12 · 295 阅读 · 0 评论 -
UVa-1586 - Molar mass:simple
//UVa#include#include#include#include#include#include#include#include#include//#define LOCALusing namespace std;#define maxn 20005int main(){#ifdef LOCAL freopen("in.txt","r",stdi原创 2015-11-25 09:00:36 · 261 阅读 · 0 评论 -
UVa-11292 - Dragon of Loowater:简单题
//UVa#include#include#include#include#include#include#define LOCALusing namespace std;#define maxn 20005int a[maxn],b[maxn];int main(){#ifdef LOCAL freopen("in.txt","r",stdin); //原创 2015-11-20 22:20:08 · 293 阅读 · 0 评论 -
UVa-455 - Periodic Strings:simple
这里用到了STL中string求子串方法的sub_str()然后就是按照字符串长度的因子从小到一个个比较了sub_str用法如下(贴来的)string substr(int start=0,int count= -1);从起始位置开始复制字符串中的count 个字符,并返回这些字符作为子串。如果字符串尾部小于count字符或者count 为-1,则字符串尾停止复制。原创 2015-11-28 10:05:53 · 278 阅读 · 0 评论 -
经典重拾-第一部分 语言篇 第一章 程序设计入门
C语言输出: 实数(浮点数)n 用printf("%f",n); 保留小数点1位 printf("%.1f",n);C语言输入: 浮点数 输入 scanf("%lf",&n); float 和 double 都遵循上述规则?常量π定义: #include转载 2016-06-02 15:23:44 · 359 阅读 · 0 评论 -
经典重拾-第一部分 语言篇-第二章 -循环结构程序设计
有经验的程序猿总是尽量缩小变量定义范围。for(int i=0; i<n; i++)【哈哈,我就是如此····浮点运算可能存在误差。在进行浮点数比较时,应考虑到误差。调试程序时,不推荐利用IDE和gdb跟踪调试,更通用的是:输出中间结果【嗯 我就是这么干的···涉及long long的输入输出要注意,不同的编译器,printf的输出格式不同,MinGW的gcc中 %lld 改成 %I6转载 2016-06-02 20:22:24 · 400 阅读 · 0 评论 -
UVA - 1339 Ancient Cipher :简单字符串处理
题意:加密(解密)规则有 一些字符的 “替换” 和一些 字符的“重排”,题中要求给两个字符串,能否通过所给加密(解密)规则使得第一个字符串和第二个字符串相等,加密规则可以是:重排,替换,或者 重排+替换思路:如果一个字符串S1加密后与另一个字符S2串相等 那么可以肯定的是S1中相等的字母数等于S2中相等的字母数,其他不相等的字母,可以通过替换达到相等。这样所有S1中字母都可以通过替换得原创 2016-06-24 14:44:40 · 295 阅读 · 0 评论 -
章节读后感-第一部分-第四章:函数和递归
第三章有两道题卡在那里了···“循环小数”和“浮点数”今天做循环小数卡了···自己的模拟能力真的特别烂特别特别烂···最终还是上网看了别人的代码 有的真简洁!真的是开了眼界了 由衷的佩服 看了其他的代码 思路都是利用 抽屉原理 但是“菜小白”的实现起来真的棒 能看出来 C语言 玩的真转···做的快晕了···打算明天做原创 2016-06-22 22:15:19 · 301 阅读 · 0 评论 -
UVA-1588-Kickdown:简单字符串匹配
一道简单题,想的不到位,做了好久···呵呵一下自己的poor能力···问题出在F函数中注释部分想当然认为短的去匹配长的串···然而反例是2111222211长的匹配短的结果是7短的匹配长得结果是8注释掉后就对了···之前主函数中交换是因为考虑到了如下情况222221如果不交换输出6 交换后输出5 //#defin原创 2016-06-20 21:17:37 · 462 阅读 · 0 评论