思路:m和n如果有公约数,则安全洞存在,无公约数或公约数为1,则无
#include
int gcd(int a,int b)
{
if(b==0)return a;
else
{
int r;
while(b!=0)
{
r=a%b;
a=b;
...
分类:
其他好文 时间:
2014-05-07 02:54:02
阅读次数:
283
题目:
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.
Return a deep copy of the list.
思路:
主要是深层复制的问题:
本题比较简...
分类:
其他好文 时间:
2014-05-07 02:44:38
阅读次数:
344
用栈实现括号匹配其实是一个很简单的问题,思路在代码注释里面写的很清楚了,只是接口设置的好像不太好。
如果在main里面设置的str不是动态分布的,在linux下就会出错,不知道windows会不会出问题。
kuohao.cpp
#include
#include "stack.cpp"
using namespace std;
//仅用于检测(),{},[],其他的符号原理都是一样的
bo...
分类:
其他好文 时间:
2014-05-07 02:39:17
阅读次数:
247
【题目】
原文:
1.4 Write a method to decide if two strings are anagrams or not.
译文:
写一个函数判断两个字符串是否是变位词。
【分析】
变位词(anagrams)指的是组成两个单词的字符相同,但位置不同的单词。比如说, abbcd和abcdb就是一对变位词。该题目有两种思路:
【思路一】
由于变位词只是字...
分类:
其他好文 时间:
2014-05-06 23:17:56
阅读次数:
383
题目:HDU 4720 :Naive and Silly Muggles
题目大意:这题的意思是给出三个点, 然后在给出另一个点,问这个点会不会在覆盖前面三个点的最小的圆里面(包括边界), 在里面最输出danger, 如果任何情况下这个点都不在圆里面,那么就输出safe。
解题思路:三个点最小的覆盖的圆是三角形的外接圆,这样的圆面积一定是最小的。 但是相同面积的圆,所在的位置,...
分类:
其他好文 时间:
2014-05-06 23:06:15
阅读次数:
382
题意:一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA".
给定若干字母和它们相应的个数,计算一共可以组成多少个不同的字符串.
思路:
(a1+a2+ ... +an)! / a1! / a2! / ... / an! 大数
#include
#include
const int MAX =5...
分类:
其他好文 时间:
2014-05-06 23:05:30
阅读次数:
323
首先是活动安排问题。
贪心的关键在于排序策略。
思路很简单,对所有活动的结束时间排序,如果结束时间相同,因为要尽量多的参加活动,所以选取开始时间尽量晚的(这样可以安排的比较多),然后依次从早到晚选取不冲突的活动加入,即为最多可以参加的活动。
#include
#include
#include
#include
#include
using namespace std;
clas...
分类:
其他好文 时间:
2014-05-06 23:01:00
阅读次数:
394
题目连接:uva 11578 - Situp Benches
题目大意:健身房有两个仪器,初始角度为10度,每次有人使用需要交15元,每调10度需要花费10元,现在有n个人,给出每个人使用仪器的顺序和角度,保证不会同时有大于2个人序号一样,求最小花费,并且输出每个人分别使用哪一个仪器,并且所有人使用结束后,要将仪器调回10度。
解题思路:dp[i][x][y]表示第i个人,一个...
分类:
其他好文 时间:
2014-05-06 22:54:40
阅读次数:
361
#include
#include
using namespace std;
#define n 8
int * filler=new int[n*n];//记录填充位置
int initFiller(){//初始化填充记录器
int i,j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
*(filler+n*i+j)=0;
}
}
retur...
分类:
其他好文 时间:
2014-05-06 21:51:33
阅读次数:
323
题目链接:10641 - Barisal Stadium
题意:顺时针给定n个点,在给m个灯,每个灯有一个花费,要求最小花费使得所有边能被灯照到
思路:用向量叉积判断向量的顺逆时针关系,从而预处理出每个灯能照到的边,然后由于n个点是环的,所以可以直接扩大两倍,dp时候去枚举起点即可
状态为dp[i]表示现在照到i条边之前的边全部照亮需要的最小花费
代码:
#include
#inclu...
分类:
其他好文 时间:
2014-05-06 21:40:48
阅读次数:
304