<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qiweigo的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qiweigo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qiweigo]]></copyright><item><title><![CDATA[soj1093伊拉克]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/44025857</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/44025857</guid><author>qiweigo</author><pubDate>Mon, 02 Mar 2015 22:59:54 +0800</pubDate><description><![CDATA[背景：这题做了大概五个小时，每次都在标记上出错。
思路：回溯，我先把军舰的长度按照由长到短依次排列，然后依次检索，特别注意变量l的使用，正是这个变量的使用，我的一段混乱代码才可以过。
            题目中的数据很容易过，如果实在找不出错误，又不知道如何出数据，可以把第一组和第二组数据结合起来（一般人我不告诉他，哈哈）。代码如下，请自行理解。
学习：回溯算法：从一条路往前走，能进则进]]></description><category></category></item><item><title><![CDATA[soj1084滑雪比赛]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43907769</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43907769</guid><author>qiweigo</author><pubDate>Sun, 22 Feb 2015 16:08:01 +0800</pubDate><description><![CDATA[背景：没考虑到海拔还可以为0和负，所以就一直wrong了好久。
思路：dfs+记忆化搜索+递归。
学习：记忆化搜索。#include 
#include 
using namespace std;
int area[52][52],memory[52][52];
int m,n,max_time,k;
int judge(int i1,int j1,int i,int j)
{
    if(]]></description><category></category></item><item><title><![CDATA[soj1080生化危机三]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43791773</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43791773</guid><author>qiweigo</author><pubDate>Fri, 13 Feb 2015 10:07:16 +0800</pubDate><description><![CDATA[背景：由于对map使用的不熟悉，先一直无法编译通过，当纠正了map的错误后，一次ac。
思路：先用map对每个怪物需要消耗的子弹和一个怪物会伤害人多少血进行映射，然后就是简单模拟了。
学习：map的简单使用。#include 
#include 
using namespace std;
map xue,zidan;
int l,a;
void judge(char guaiwu,int g_]]></description><category></category></item><item><title><![CDATA[poj1573Robot Motion]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43730235</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43730235</guid><author>qiweigo</author><pubDate>Wed, 11 Feb 2015 08:56:26 +0800</pubDate><description><![CDATA[背景：一次ac，但做这种没有中文的题做多了，已经严重让我怀疑我自己了，毕竟英语太烂，读懂题意就要读好久。
思路：主要用两个数组模拟整个path，一个用字符串数组来模拟出整个命令，然后用一个整型数组初始化为0，每次走一步就标记一下，这样就能很快的找到结束条件了。
学习：懂得简化代码，把各种情况相同部分的代码写到一起。#include 
#include 
#include 
using name]]></description><category></category></item><item><title><![CDATA[poj2632Crashing Robots]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43704663</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43704663</guid><author>qiweigo</author><pubDate>Tue, 10 Feb 2015 16:40:28 +0800</pubDate><description><![CDATA[背景：这道题不涉及算法，只是普通的模拟。
思路：用结构体存储一个机器人的横坐标，纵坐标，还有他的方向，我在方向这个问题上运用了一点小技巧，那就是用0，1，2，3分别代表N，W，E，S这样对于处理L和R就非常的方便了。最主要的就是在处理F命令中既要注意机器人在移动过程中遇到其他机器人，又要注意机器人是否越界，在这方面，可以运用一个数组模拟出整个工厂，每个位置初始化为0，有机器人的位置设置为该机器人]]></description><category></category></item><item><title><![CDATA[poj1068Parencodings]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43701645</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43701645</guid><author>qiweigo</author><pubDate>Tue, 10 Feb 2015 12:19:16 +0800</pubDate><description><![CDATA[背景：做这道题的时候，完全无法理解题意，无赖使用了百度翻译，可翻译出来的东西一点也不容易理解，最后实在没办法了，就看了解题报告里面的大致题意描述。
思路：首先用vector存储括号，右括号用0表示，左括号用1表示，并在存储过程中，用另外一个vector存储下右括号在整个brackets中的位置，这样就可以少一次检索，然后在依次处理brackets数组中的元素。
学习：vector的使用。
#]]></description><category></category></item><item><title><![CDATA[poj3295Tautology]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43699881</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43699881</guid><author>qiweigo</author><pubDate>Tue, 10 Feb 2015 10:16:50 +0800</pubDate><description><![CDATA[背景：一直wrong在while()语句上最开始的时候没有把字符串为0考虑进去，所以导致输出一直是not。
思路：本题我构造了一个堆栈和一个映射关系，p，q，r，s，t每个只有0和1两种情况，所以可以直接用for循环枚举即可，枚举的时候用map产生映射，这样比较简单，然后就是定义一个字符串数组，从字符串最后一个元素开始处理，然后就是简单的堆栈操作，在元素处理中，按照题意，遇到p，q，r，s，t直]]></description><category></category></item><item><title><![CDATA[poj2586Y2K Accounting Bug]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43671925</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43671925</guid><author>qiweigo</author><pubDate>Mon, 09 Feb 2015 16:12:42 +0800</pubDate><description><![CDATA[背景：再做这道题的时候，我严重怀疑我的英语能力，o(︶︿︶)o 唉，翻译了一个多小时。
思路：由于本题情况比较少，所以可以直接枚举出所有的情况，首先要找出五个月中最少亏损月份，然后就开始枚举出五种情况，最后输出即可。
#include 
void print(int n)
{
    if(n<0) printf("Deficit\n");
    else printf("%d\n",n);]]></description><category></category></item><item><title><![CDATA[poj2109Power of Cryptography]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43670587</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43670587</guid><author>qiweigo</author><pubDate>Mon, 09 Feb 2015 14:30:36 +0800</pubDate><description><![CDATA[背景：题目不难，但由于是第一次用二分法写代码，在结束条件那个地方纠结了半天。
思路：简单二分法。
学习：二分法：当数据量很大适宜采用该方法。采用二分法查找时，数据需是排好序的。主要思想是：（设查找的数组区间为array[low, high]）（1）确定该期间的中间位置K（2）将查找的值T与array[k]比较。若相等，查找成功返回此位置；否则确定新的查找区域，继续二分查找。区域确定如下：a.a]]></description><category></category></item><item><title><![CDATA[uva12096集合栈计算机]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43667749</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43667749</guid><author>qiweigo</author><pubDate>Mon, 09 Feb 2015 10:15:37 +0800</pubDate><description><![CDATA[背景：这道题出现在我学习c++的stl中，对现在还不了解stl的人来说，确实显得太难了，只有照着书打下代码，然后一步一步的理解。
思路：由于本题的的集合并不是简单的整数集合或者字符串集合，所以就用map建立映射关系，而再建立映射关系的时候，又运用了vector协助，这样就能很明确的使得每个集合都有一个ID，然后就是堆栈的一些操作了。
学习：stl里面一些知识的简单运用。
#include]]></description><category></category></item><item><title><![CDATA[C++ STL泛型编程——在ACM中的运用]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43604403</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43604403</guid><author>qiweigo</author><pubDate>Sat, 07 Feb 2015 16:35:47 +0800</pubDate><description><![CDATA[C++
 STL泛型编程——在ACM中的运用


学习过C++的朋友们应该对STL和泛型编程这两个名词不会陌生。两者之间的关系不言而喻，泛型编程的思想促使了STL的诞生，而STL则很好地体现了泛型编程这种思想。这次想简单说一下STL在ACM中的一些应用。我们知道，在ACM竞赛中，经常需要用到数组、字符串、队列、堆栈、链表等数据结构和排序、搜索等算法，以提高程序的时间、空间运行效率。然而如果]]></description><category></category></item><item><title><![CDATA[C++中cin.get和cin.getline的区别]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43604325</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43604325</guid><author>qiweigo</author><pubDate>Sat, 07 Feb 2015 16:28:28 +0800</pubDate><description><![CDATA[C++中cin.get和cin.getline的区别
分为三种情况来看：
1）输入的字符串不超过限定大小
        get(str,Size)：读取所有字符，遇到'\n'时止，并且将'\n'留在输入缓冲区中，其将被下一个读取输入的操作捕获，影响该输入处理；
        getline(str,Size)：读取所有字符，遇到'\n'时止，并且将'\n'直接从输入缓冲区中删除掉，不会影响下]]></description><category></category></item><item><title><![CDATA[poj1328Radar Installation]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43603977</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43603977</guid><author>qiweigo</author><pubDate>Sat, 07 Feb 2015 15:53:29 +0800</pubDate><description><![CDATA[背景：因为一个小错误找了一个多小时，就是在输入数据的时候，雷达Q的作用范围可以为0.while(scanf("%d %d",&N,&Q)==2&&N)这句话千万不要写成while(scanf("%d %d",&N,&Q)==2&&N&&Q)
否则就会错。
思路：简单贪心，先要找出每个小岛可以被雷达发现的区间，然后就可以运用贪心算法了，先用sort按照区间左端点升序排列。然后如下运用贪心就可以了]]></description><category></category></item><item><title><![CDATA[soj1002大数加法]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43577469</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43577469</guid><author>qiweigo</author><pubDate>Fri, 06 Feb 2015 23:01:25 +0800</pubDate><description><![CDATA[背景：wrong在几组坑数据上，如果不看discuss，打死我也想不出来还有那些坑数据，o(︶︿︶)o 唉。
思路：用数组存储那个数字，然后进行想加，相加的时候记住取余和取整运算，还得注意几组特别坑的数据，这里提供几组坑数据。
0000 0000    99 1    001245 1000 
学习：了解用数组去存储一个大数。
#include 
#include 
void Sum(in]]></description><category></category></item><item><title><![CDATA[C++ map的基本操作和使用]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43567331</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43567331</guid><author>qiweigo</author><pubDate>Fri, 06 Feb 2015 18:08:19 +0800</pubDate><description><![CDATA[C++ map的基本操作和使用


   来源：(http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html)
 - C++ map的基本操作和使用_Live_新浪博客
    Map是c++的一个标准容器，她提供了很好一对一的关系，在一些程序中建立一个map可以起到事半功倍的效果，总结了一些map基本简单实用的操作！
1. map最基本的]]></description><category></category></item><item><title><![CDATA[uva156反片语]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43566479</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43566479</guid><author>qiweigo</author><pubDate>Fri, 06 Feb 2015 16:58:09 +0800</pubDate><description><![CDATA[背景：学习stl过程中遇到的简单题，但我不会。
思路：将单词标准化，然后就可以运用映射map了。#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
map cnt;
vector words;
string repr(const string& s)
{
    string ans=s]]></description><category></category></item><item><title><![CDATA[STL在ACM竞赛中的使用]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43566227</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43566227</guid><author>qiweigo</author><pubDate>Fri, 06 Feb 2015 16:43:59 +0800</pubDate><description><![CDATA[本文结合小紫书总结STL在ACM竞赛中的使用

1.stringstream字符流，和string类型:

string类具有的优点：可以直接用四则运算符和关系运算符，简化了字符串类型的操作。





[cpp] view
 plaincopyprint?






string string1="22",string2="11";  
string1+=]]></description><category></category></item><item><title><![CDATA[（转）C++ stringstream介绍，使用方法与例子]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43565003</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43565003</guid><author>qiweigo</author><pubDate>Fri, 06 Feb 2015 15:26:54 +0800</pubDate><description><![CDATA[（转）C++ stringstream介绍，使用方法与例子

 


C++引入了ostringstream、istringstream、stringstream这三个类，要使用他们创建对象就必须包含sstream.h头文件。

　　istringstream类用于执行C++风格的串流的输入操作。 
ostringstream类用于执行C风格的串流的输出操作。 
strstrea]]></description><category></category></item><item><title><![CDATA[uva10815安迪的第一个字典]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43564821</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43564821</guid><author>qiweigo</author><pubDate>Fri, 06 Feb 2015 15:15:42 +0800</pubDate><description><![CDATA[背景：这种题，我只能说，原谅我是新手，一点不会，于是又只有照着书上打出来。
学习：c++里面set的一些基本用法。还有isalpha()函数和tolower()函数，isalpha()函数相当于isupper()||islower()的作用，为判断一个字符是否为英文字符，tolower()为将一个字符转变成小写字符，与之相反的为tosupper()函数。
注：set和stringstream的]]></description><category></category></item><item><title><![CDATA[C++ STL set小结]]></title><link>https://blog.youkuaiyun.com/qiweigo/article/details/43563079</link><guid>https://blog.youkuaiyun.com/qiweigo/article/details/43563079</guid><author>qiweigo</author><pubDate>Fri, 06 Feb 2015 13:15:37 +0800</pubDate><description><![CDATA[/*
set/multiset会根据待定的排序准则，自动将元素排序。两者不同在于前者不允许元素重复，而后者允许。
1) 不能直接改变元素值，因为那样会打乱原本正确的顺序，要改变元素值必须先删除旧元素，则插入新元素
2) 不提供直接存取元素的任何操作函数，只能通过迭代器进行间接存取，而且从迭代器角度来看，元素值是常数
3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同)
s]]></description><category></category></item></channel></rss>