摘要:题目大意:给出一个光源,给出一些圆,求投影区间。如图,先可以求出角a,通过半径与PQ距离,而角b也可以求出。那么就可以求出两条切线与Y轴的夹角,分别为a+b,b-a。之后利用角度求出各投影线段的左右顶点,排序判断即可。#include#include#include#includeusing nam...
阅读全文
摘要:题目大意要求把一个冰壶从起点“2”用最少的步数移动到终点“3”其中0为移动区域,1为石头区域,冰壶一旦想着某个方向运动就不会停止,也不会改变方向(想想冰壶在冰上滑动),除非冰壶撞到石头1 或者 到达终点 3冰壶撞到石头后,冰壶会停在石头前面,此时(静止状态)才允许改变冰壶的运动方向,而该块石头会破裂...
阅读全文
摘要:题目跟poj2533一样,改一下数组大小完美A过。#includeconst int N = 100001;int a[N], f[N], d[N]; // d[i]用于记录a[0...i]的最大长度int bsearch(const int *f, int size, const int &a) ...
阅读全文
摘要:题目大意:给出两段文字,求出最长的公共单词串。直接是以前的代码改一点就A了。#include #include #include using namespace std;char s1[35][100],s2[35][100],s[35][100];int len1,len2,dp[105][105...
阅读全文
摘要:题意:求最长递增公共子序列这道题需要将该序列输出,这就牵涉到了路径记录的问题.#include #include #include using namespace std;int a[505],b[505],dp[505],n,m,cnt;int mark[505][505],ans[505];in...
阅读全文
摘要:题意:输出最长递增子序列的长度思路:直接裸LIS,#includeconst int N = 1001;int a[N], f[N], d[N]; // d[i]用于记录a[0...i]的最大长度int bsearch(const int *f, int size, const int &a) { ...
阅读全文
摘要:题目大意:将两个字符串结合起来,他们的公共子串只输出一次根据LCS的原理,将每个字符都进行标记,看两个字符串中对应的字符究竟处于什么状态,然后输出,其标记为公共子串的字符只输出一次即可,也是一道模板题了。http://blog.csdn.net/libin56842/article/details/...
阅读全文
摘要:题目大意:求出两个串的公共子序列的长度LCS的入门题,读懂题了直接模板就可以#include #include using namespace std;const int N=1000;int a[N][N];int LCS(const char *s1, const char *s2){// s1...
阅读全文
摘要:题目的大意是:给出一序列,求出该序列的最长上升子序列的最大长度。思路:a: 1 7 3 5 9 4 8dp: 1 2 2 3 4 3 4#include #include using namespace std;const int MAXN = 1005;int main(){ int n; ...
阅读全文
摘要:题目大意:从三角形顶部数字走,每次只能走到这个数字的左下角或者右下角的数字,直到底部,计算走过的线路的数字之和,求这个和的最大值。#include #include #include using namespace std;const int MAXN = 105;int dp[MAXN][MAXN...
阅读全文
摘要:给定从左到右多个矩形,已知这此矩形的宽度都为1,长度不完全相等。这些矩形相连排成一排,求在这些矩形包括的范围内能得到的面积最大的矩形,打印出该面积。所求矩形可以横跨多个矩形,但不能超出原有矩形所确定的范围。l[i]表示大于等于h[i]的最左边的位置,r[i]表示大于等于h[i]的最右...
阅读全文
摘要:题目大意: 对整数串S,求其两个不相交的子串s1、s2,使得s1+s2的值最大。方法:DP, lt[i]代表以第i个元素结尾的串最大值 rt[i]代表以第i个元素开头的串的最大值 那么设置一个rtm[i]代表取后i个元素之中最大连续子串的和很显然,lt[i]=max(a[i],l...
阅读全文
摘要:题目大意:找到队列中不符合非升(降)序趋势的编号个数,分别判断升序跟降序的个数,最后取最小。两种方法:#include #include #include #include using namespace std;#define maxn 30005int n;int cow[max...
阅读全文
摘要:题目大意:给你一串只有1,2的数字,让你改变最少的次数,让这个序列变成非递减的。思路:动态规划,判断分界点,开一个dp[30010][2]的数组,其中dp[i][j]表示把第i个数改成j最少要花多少次那么状态转移方程就列出来了:令a=1 j!=a[i]0 j==a[i]那么dp[i][1]=dp[i...
阅读全文
摘要:题意很难理解,让我先去学习一会英语......转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299234147大意是一个公司在12个月中,或固定盈余s,或固定亏损d.但记不得哪些月盈余,哪些月亏损,只能记得连续5个月的代数和总是亏损(=4...
阅读全文
摘要:技巧。#include#includeusing namespace std;double n,p;int main(){ while(cin>>n>>p){ cout<<pow(p,1/n)<<endl; }} 版权声明:本文为博...
阅读全文
摘要:有n门课程,和m天时间,完成a[i][j]得到的价值为第i行j列的数字,求最大价值......看过背包九讲的话,做这个就容易多了,其实就是简单的分组背包问题。#include #include using namespace std;int A[105][105];int dp[105];int m...
阅读全文
摘要:Problem Description最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验...
阅读全文
摘要:题目大意: 假设有一条无限长的海岸线,海岸线以上部分有n个岛屿。在海岸线上有雷达,每个雷达能够探测的范围为半径为r的圆,当且仅当一个岛屿与雷达的距离小于等于r时,岛屿能被雷达探测到。给出所有岛屿的坐标和雷达的半径。求最少需要用多少个雷达,使得所有的岛屿都被探测到。图中ABCD为海岛的...
阅读全文