自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 OpenJ_Bailian - 2748

该题可以说是非常简单的一道题目,但是挂出来是因为自己在这里用了好几种方法,尤其是温习了一下STL中的next_permutation函数。在此还是码出来。题意很简单,输入一个字符串,然后输出字典序全排列。给指定序列进行全排列的方式有很多,比如序数法,字典序法,临位互换法。下面的文章非常详细的描述了字典序法生成全排列的原理:字典序法生成全排列  第一种方式是使用递归的思想,把所有的排列方式按

2017-10-17 23:20:06 357

原创 Z_trening - 204

该题题意比较简单,有一个首尾相连的字符串,长度给定,从某个位置切断后,从两端开始取字符。规则为只能取颜色与首端珠子颜色相同的珠子,而首端珠子颜色如果是白色(w),就往下遍寻直至不是(w)的珠子作为第一个珠子的颜色。另外白色珠子可以被涂上任意颜色,因此如果遇到白色珠子是必定可以取出的。举例说明:wwwbbrwrbrbrrbrbrwrwwrbwrwrrb。我们把两个字符连在一起,得到新的字符串wwwb

2017-10-17 12:32:37 296

原创 放弃读研,转战求职!

放弃读研,转战求职!最近发生了很多事,自己也思考了很多。记忆最深的是和廖神、段男神、骆学长、政政的谈话,好好思考了我自己到底想要什么,自己到底喜欢什么。在很多时候,我是有些优柔寡断的人,有些听上去不错的建议,我不会思考的特别深入就做出了决定。这个问题也让我吃过很多亏,也让我曾经接了很多事务一度接近崩溃。现在已经大三了,却是能沉下心想想自己到底是什么样的人,自己到底想要什么样的生活。现在以我

2017-10-17 11:48:49 271

转载 UVa202

这一题自己在写的时候漏掉了很多细节方面的东西,一直没有能AC,最后还是借鉴了(小白菜又菜)的代码才AC OTZ本题是计算分数的循环节,如果没有循环节则用(0)来替代,那么这里面又涉及到了数论的知识——抽屉原理:n 除以 m 的余数只能为 0~m-1 那么计算m+1次至少有一次余数相同,即为循环节通过数组来存储循环节的数值和循环节长度即可#include#include#de

2016-10-07 09:58:56 421

原创 UVa232

在获取数据后,通过题意判断条件判断网格中的编号并用二维数组 xuhao[ ] 存储,在寻找横向和竖向的字符串的过程中,可以设置一个 move 变量,通过 move 的移动,来数组字符。在输出竖向的字符串的时候应该格外的注意,因为在竖向输出字符串的时候,编号的顺序有可能会混乱。自己尝试了很久,最后看了小白菜又菜写的代码才给我带来了解题的思路。即建立一个结构体数组data,里面的data.id用来计数

2016-09-29 08:33:23 416

原创 UVa455

字符串求最小周期,思路就是通过比较 str[k] != str[k%i] ,如果有不符合条件语句的就break。这一题直接暴力解决即可。#include#include#define maxn 80+5char str[maxn];int main(){ int T; scanf("%d", &T); while(T--) { memset(str, 0,

2016-09-23 00:27:40 324

原创 UVa1225

打表题,基本不需要想。打表后进行查询输出即可。#include#include#include#define maxn 10000+5int array[maxn][10];// 打表查询 void make_array(){ memset(array,0,sizeof(array)); for(int i = 1; i < maxn; i++) { for(

2016-09-23 00:25:28 295

转载 UVa227

这一题是就是简单的模拟题。用一个二维数组去存,然后进行模拟。比较烦人的地方是对于数据的读取和处理。今天一整个下午因为这一题的玄学问题花式WA,最后网上找了AC代码,发现思路基本相同,(样例我也过了)反正我的代码就是WA,网上找的代码就是AC(#懵逼)#include #include int main () { int cases = 0; bool line =

2016-09-23 00:20:35 285

原创 UVa1586

这一题只需要用一个数组存储每一个元素的个数。这里格外需要注意的是,题中讲了数字最大不超100(我一开始还傻傻的为了正确存数字特意写了30+行多余代码)这里还有几点需要注意的,一个是sum最好是用double来存,另外判断字符是否相同的语法容易出错。

2016-09-21 18:58:32 500

原创 UVa1585

该题需要按照连续的'O'来统计得分,那么只需要设一个得分数组score[],存储每个字符对应的分数。在循环中将数组中的数值得分相对于前一个值+1 score[i] = score[i-1]+1,如果遇到字符'X'直接将该位置的得分置0即可。这里需要注意的是对于score数组的第一个值的初始化,通过判断str数组的第一个字符然后初始化一下就行了。#include#include#

2016-09-21 16:18:29 318

原创 UVa1584

在一开始看到这一题的时候,第一感觉是类似于约瑟夫环的做法,因此一直在往循环队列的方向想,后面看了刘汝佳巨巨的代码简直被吓得不要不要的。。。所以说有时候换一种思维方式就是换了一个世界(#滑稽)这一题通过不断的更新ans的位置来确定最小字典序字符串,而函数less也是十分重要的一部分,尤其是在return部分,需要好好理解#include#include#define maxn

2016-09-21 00:48:02 369

原创 UVa1583

这一题看起来挺麻烦,其实就是一道打表题,先把所有的情况都枚举出来,再进行搜索输出即可#include#include#define maxn 100000+5int ans[maxn];int main(){ // 打表 int T, n; // 不要忘记初始化数组 memset(ans, 0, sizeof(ans)); for(int m = 1; m

2016-09-21 00:24:04 392 1

原创 UVa340

该题求A十分简单,用数组和if语句稍加判断即可,重点是对于两个序列都出现过单身位置不对的数字的求发。直接统计得到A过后,在求B的时候,对于每一个数组(1~9),统计二者出现的次数c1和c2,则min(c1,c2)就是该数字对于B的贡献。(为什么是min(c1,c2)可以思考一下)最后只需要减去A的部分即可。#include#define maxn 1010int main()

2016-09-21 00:10:40 267

原创 UVa401

这一题最简单的方式就是存入数组然后按照数组中对应的rev来确认字符串是否是镜像字符串,而至于回文的判断只需要跟自己字符串中心对称位置的另一个字符对比就可以得到。这里需要注意几个小地方,一个是i 在我自己编写代码编译的时候出现了[Warning] pointer to a function used in arithmetic [-Wpointer-arith] 在检查后发现是27行的if(r(

2016-09-20 09:27:34 555

原创 UVa10082

这一题依然是一个简单的字符串的处理,不过通过巧妙的讲所有的改变的都存于数组s[]中,避免了多次查询字符和寻找输出字符的时间,大大精简了代码。#includechar s[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";int main(){ int i, c; while((c = getchar()) != EO

2016-09-20 01:57:14 473

原创 UVa272

注:重新开始练习算法,每天200行左右代码,书本为刘汝佳的《算法竞赛入门经典》(第二版)

2016-09-20 01:46:58 598

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除