【Note】挑战程序设计竞赛
Thereisnospon
在校本科生,渣渣一枚,正在向成为一名大牛而努力~
展开
-
选取硬币问题
有1元,5元,10元,50元,100元,500元的硬币各c0,c1,c2,c3,c4, c5枚现在要使用这些硬币支付n元,问最少需要多少枚硬币,假设至少存在一种方案。应该尽可能使用500元的,然后再使用100元的.....使用贪心策略。#include "stdafx.h"#include#includeusing namespace std;const int原创 2015-04-18 15:22:18 · 493 阅读 · 0 评论 -
区间问题
有n项工作,每项分别在si开始,ti结束,对于每项工作一旦开始不能中途结束,参与的工作时间不能重叠,尽可能多的参加工作,求解最多项。应该在每次可以选择的工作中,选择出最早结束的那个工作进行。#include#include#define MAX 500using namespace std;int S[MAX];//开始时间int T[MAX];//结束时间pair原创 2015-04-18 15:45:32 · 389 阅读 · 0 评论 -
迷宫最短路
#include#include#include#include#define MAX 100using namespace std;const int INF = 10;typedef pairP;int d[MAX][MAX];char imap[MAX][MAX];int n, m;int sx, sy;int gx, gy;int To[4][2] = { {原创 2015-04-18 13:56:04 · 626 阅读 · 0 评论 -
部分和问题
#include "stdafx.h"#include#define MAX 100using namespace std;int n=7, k;int num[100] = { 1, 3, 4, 2, 5, 6, 7 };bool dfs(int i, int sum){ if (i == n)return sum == k; if (dfs(i + 1, sum))retur原创 2015-04-18 13:58:41 · 280 阅读 · 0 评论 -
Lake Counting
#include "stdafx.h"#include#define MAX 500using namespace std;char imap[MAX][MAX];int n, m;void dfs(int x, int y){ imap[x][y] = '.'; for (int dx = -1; dx <= 1; dx++) for (int dy = -1; dy <=原创 2015-04-18 14:00:05 · 311 阅读 · 0 评论 -
POJ 3617 Best Cow Line
给定长度N的字符串S,要求构造一个长度为N的字符串T,起初T是一个空串,随后反复进行如下操作:1.从字符串S的首部删除一个字符添加到T的末尾。2.从字符串S的尾部删除一个字符添加到T的末尾。要求构造的字符串T的字典序最小。可以按照如下算法:按照字典序比较当前字符串S及将它翻转后的字符串S‘,如果S>S',则从S开头删除一个字符添加到T末尾。如果S#i原创 2015-04-21 14:33:59 · 661 阅读 · 0 评论 -
01背包问题
#include#include#include#define MAX 100using namespace std;int n,w;int value[MAX]={3,2,4,2};int weight[MAX]={2,1,3,2};int dp[MAX][MAX];//朴素方法int ans2(int i,int j){ int res; if(i==n)原创 2015-12-03 13:49:10 · 2612 阅读 · 0 评论 -
最长公共子序列LCS
#include#include#include#define MAX 100int dp[MAX][MAX];using namespace std;void solve(string a,string b){ memset(dp,0,sizeof(dp)); for(int i=0;i<a.size();i++) { for(int j=0原创 2015-12-03 13:50:15 · 425 阅读 · 0 评论