自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UVa839:佛系建树与数据更新

题目链接传送门思路:1. 首先题目的输入是先序递归的,那么首个问题就是是否要建树,如何建树,怎么存树。更具体一点,如何知道这棵树建好了。输入只告诉我们总共有几棵树(几个天平),每棵树的构造指令作为一块用一个空行与其他指令隔开。所以首先就想到用string搭配stringstream来输入。但是细想输入数据是怎么确定这棵树建造好了呢?我们考查其建树规则:发现一旦有一个0,就要在相应的方向(左...

2018-07-23 15:53:58 381

原创 UVaoj 213:解码程序

传送门:题目链接思路:做一个循环,每个循环都包含一下几步:    第一步,就是用自己写的my_getline获取文件的一行header(为什么自己写?因为在联系C不想用C++而且gets不安全再者输入有空格等),其中要注意:获取一行字符串结束时要在对应地址末尾加上'\0'作为结束符;而结束获取的标志有EOF,'\n','\r'三者。    第二步,处理header和二进制数(msg)的关系。这里注...

2018-07-11 21:35:49 355

原创 UVa1587:给定6个矩形的长和宽w i 和h i (1≤w i ,h i ≤1000),判断它们能否构成长方体的6个面。

思路:先通过枚举确定这六组长宽对是两两相同的。在判定过程中,将对应的(去重后的)的长宽对记录下来形成由(a,b)(b,c)(c,a)组成的数组log。然后log[0]和log[1]设为a和b,于是确定2~3之间有一个a或者b,对应的4~5有b或者a,并且记录它们的位置为i,j。最后,枚举2~5把位置不为i和j的元素(两个)填充到log[0]和log[1]中,仅仅当二者相同时,才可以认为possib...

2018-07-10 14:03:25 2639

原创 UVa202:输入整数a和b(0≤a≤3000,1≤b≤3000),输出a/b的循环小数表示以及循环节长度。

做这题我经历了几个痛苦的阶段:(1)因为初始数组开的太小,导致当要存的数过多时覆盖掉了其他内容导致莫名其妙的错误(比如数组a加一个元素导致a中实际没有加而在b中覆盖掉了一个元素)。(2)格式问题。因为题目没有说清楚,试了多次才ac。以后看输出示例要注意这一点。(3)关于整除时的处理。因为考虑到分子为零的示例导致整除时的输出多了一个0(比如20/4 = 5.0(0))。#include<std...

2018-07-09 20:58:36 1384

原创 关于oj中多样例输入的几点注意事项

前言:多样例输入是指一个文件中有多个样例对程序进行测试。往往是以先告诉我测试样例的数目或者告诉我文件输入结束的标志的事件为标志。1. 记住每个样例的数据一定要被更新,最好不要有上一个示例的数据残余。比如读取字符串时最好每次都完全更新而不会因为这次输入比上次输入短而使得字符串末尾有上次输入的残余。所以检查的时候,一定要看那种每次循环(测试每个样例)都应该更新的变量是否被更新。2. 有时候读取样例时读...

2018-07-09 12:15:30 3381

原创 用字典序来生成数组的全排列

思路:为了使用非递归的方法生成全排列,我们想将所有排列与另外一个有序序列产生一一对应,这样在循环下就可以完成它们的枚举。于是考虑到用字典序来反应有序性。其实也就是将每个排列对应与一个N进制数罢了(N为数组的元素个数)。那么第一步就是将所给数组按升序排列,然后逐个输出字典序大于目前数组字典序的最小的数组排列。那么如何逐个输出字典序大于目前数组字典序的最小的数组排列呢?我们肯定是尽量少重排前面的位而多...

2018-07-06 11:28:09 1624

原创 用1,2,3,…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要 求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。

思路:注意到ghi是abc的三倍,所以abc的范围就是123到329之间,故而遍历[123,329]中的所有整数,然后每个整数算出对应的def和ghi,然后可以建立一个hash表,将abcdefghi存入其中(比如位置即该位的数值),如果出现冲突,说明一个数字用了两边,舍弃该条件;否则,可以输出答案。C语言实现如下:#include<stdio.h>#include<math....

2018-07-05 20:32:13 2269

原创 一个微妙级的时间计时框架

#include<iostream>#include<chrono>using namespace std;using namespace chrono;int main(){ auto start = system_clock::now(); //do your work auto end = system_clock::now(); auto d...

2018-05-30 22:37:26 241

原创 威佐夫博弈问题详解链接及个人啰嗦补充

链接:百度百科的定理阐述个人补充:(1)a[k]是递增的。证明:对于k>0,首先a[k]不等于a[i],i=0,1,...,k-1。其次,若存在k使得,a[k]<a[k-1],则a[k]<a[k-1]+k-1=b[k-1],所以a[k]亦是a[k-1]前未出现过得最小自然数,而这是a[k-1]的定义,故而二者相等,矛盾。所以,必有a[k]>a[k-1]。(2)任何自然数都在...

2018-05-29 16:05:17 321

原创 在一堆硬币中用最少的次数称出质量不同(可轻可重)的假币

根据题意,我们设最少的次数为n,则这n次测量的结果每次有<,>,=三种情况,故而总共可以代表3^n个情况。我们设假币有x个,并且从1开始编号。注意到如果对于每种情况称法步骤相同(就是称量规则相同),那么每个情况应该唯一确定假币的编号,而显然每个编号下的假币称量情况只会有一种,那么二者建立一一映射。更进一步,问题转化为求最小的n,使得n位三进制数能一一映射地编码x种假币情况。那么就是3^...

2018-05-29 16:01:21 1845

原创 刚学半年C++的一些编程经验的总结和资料,出于内存原因出来水一波

1.当要求输出一些数(的和),并且这些数与输入有着离散的函数对应(如果非离散,就可以用表达式实现代码简短eg.cin>>a;cout<<2*a;),那么就可以考虑通过建立数组通过角标与数组元素的对应关系实现输入与输出的离散映射,比如输入月份打出该月份的天数就可以用该方法。2.键盘输入都是先存于缓冲区(遇见[enter]就进入),再由一个个对象去读取:cin>>是...

2018-05-20 21:43:09 168

原创 刚学C++的那个半年的自己的一些想法和找到的资料,原来存在本地,现在出于内存原因放到这里水一波

1.在申请动态内存时最好设置为指针常量(eg.int*const p=new int[100];),有利于delete时运行不出错。2.C++除法时如果都为整数则结果也为整数,且商的绝对值为除数和被除数的绝对值做带余除法所得,其符号由除数和被除数的符号决定。3.注意用sprint_s(char*,"%f",double)转换double为字符指针时,double的所有位数都进来了,可以用strle...

2018-05-20 21:22:17 192

空空如也

空空如也

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

TA关注的人

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