2014年4月14日

微软2014实习生及秋令营技术类职位在线测试-3.Reduce inversion count.cpp

摘要: 这题没做对,也不知道错在哪里。思路是:先把整数都放到数组里计算inversion个数测了很多组都没错#include#include #include#include#includeusing namespace std;int calucate(int *a,int len){ int mi... 阅读全文

posted @ 2014-04-14 10:51 云在心 阅读(136) 评论(0) 推荐(0)

微软2014实习生及秋令营技术类职位在线测试-2.K-th string.cpp

摘要: #include #include #define N 35using namespace std;long long a[N][N] = {};void init(){ a[1][0] = a[1][1] = 1; for(int i = 2; i = k ){ ... 阅读全文

posted @ 2014-04-14 10:49 云在心 阅读(129) 评论(0) 推荐(0)

微软2014实习生及秋令营技术类职位在线测试-1.StringReorder.cpp

摘要: 这题只要把字符串排序即可,从头开始输出,如果后面一个与前面一个字符相同则跳过。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int main(){ 8 string temp;... 阅读全文

posted @ 2014-04-14 10:48 云在心 阅读(194) 评论(0) 推荐(0)

2014年4月9日

微软编程一小时

摘要: 由于通知的太尴尬,那时候人已在上海,所以没时间做,昨天晚上看了一下题目,自己写了一下,但是不能提交了,就放在这里让大家给我检查检查。第一题,不知道是不是想的太复杂了,我把每个表达式都表示成分数的形式,然后减去9,然后进行比较。为了分数的加减以及比较,所以写了一个分数结构体,提供+,-, 2 using namespace std; 3 struct fenshu{ 4 int fenzi; 5 int fenmu; 6 fenshu(){ 7 fenzi=1; 8 fenmu=1; 9 } 10 fensh... 阅读全文

posted @ 2014-04-09 16:44 云在心 阅读(425) 评论(2) 推荐(0)

2014年3月18日

uva 10192 - Vacation

摘要: 1 #include 2 #include 3 #include 4 using namespace std; 5 int maxlen[102][102]; 6 void lsc(string a,string b){ 7 for(int i=1;i=maxlen[i][j-1])13 maxlen[i][j]=maxlen[i-1][j];14 else15 maxlen[i][j]=maxlen[i][j-1];16 }17 }18 }19 i... 阅读全文

posted @ 2014-03-18 12:27 云在心 阅读(180) 评论(0) 推荐(0)

uva 10066 - The Twin Towers

摘要: 就按照传统的方法求。 1 #include 2 #include 3 using namespace std; 4 int m,n,maxlen[102][102]; 5 void lcs(int a[],int b[]){ 6 for(int i=1;i=maxlen[i][j-1])12 maxlen[i][j]=maxlen[i-1][j];13 else14 maxlen[i][j]=maxlen[i][j-1];15 }16 } 17 ... 阅读全文

posted @ 2014-03-18 12:24 云在心 阅读(144) 评论(0) 推荐(0)

动态规划1--最长公共子序列

摘要: 最近在做动态规划的题目,这里的题目绝对是acm的一个门槛,对你的编程能力,逻辑能力,算法能力都是一个考验。我不幸已经在门槛上摔到了。 动态规划的学习是一个长期的过程,如果只是做题不进行理论学习,我感觉是非常艰难,属于事半功倍类型。所以一边要进行题目上的训练,一边也要总结,在理论上进行巩固。 先从最近的几题入手,最长公共子序列。uva-103,111,10066,10192个人感觉都是这类型的。 我看了几篇牛人也的博客,感觉自己描述可能反倒不能理解,所以选取最佳的一篇放在这里供大家学习。 http://www.cnblogs.com/huangxincheng/archive... 阅读全文

posted @ 2014-03-18 12:23 云在心 阅读(159) 评论(0) 推荐(0)

2014年3月5日

uva 674 - Coin Change

摘要: 这题调试了好久啊。不要一开始就想着动态规划,慢慢做就可以做出来了,要记着给d[i][1]赋值。#include#includeusing namespace std;long long d[6][8000];int coin[6]={0,1,5,10,25,50};long long dp( int a,int k){ if(d[a][k]>0) return d[a][k]; d[a][k]=0; for(int i=0;i>m){ if(m==0){ cout<<0<<endl; continue; ... 阅读全文

posted @ 2014-03-05 14:50 云在心 阅读(147) 评论(0) 推荐(0)

2014年3月3日

uva 103 - Stacking Boxes

摘要: 这一题和上一题类似,只不过要保存最长序列而已,可以知道在刘汝佳老师书中只要记录状态d[i]的前一个即可。 1 #include 2 #include 3 using namespace std; 4 int dj[100][100],num[100][100],d[100]; 5 int m,n; 6 int prenum[100]; 7 int distanc(int a){ //动态规划的方法仿照上一题 8 if(d[a]>-1) 9 return d[a];10 for(int i=0;i>m>>n){29 for(in... 阅读全文

posted @ 2014-03-03 13:00 云在心 阅读(145) 评论(0) 推荐(0)

2014年2月27日

uva 111 - History Grading

摘要: 这题的提议很容易理解错,一开始按照他的sample int 和 out都无法推理出。假设有A B C D四个事件,发生顺序 4 2 3 1 是指 第一个事件是第四个发生的,即 A事件是第四位发生,所以事件的发生顺序为 D B C A。这题用动态规划的思想做,不过感觉自己写的不是很正宗。 1 #include 2 using namespace std; 3 int numevents[21]; 4 int d[21]; //假设状态为d,即按照学生提供的事件顺序(不是他的那串输入数字),d[i]表示第i个数字能够达到的最长序列 5 int path[21]; 6 int temp[21]; 7 阅读全文

posted @ 2014-02-27 15:13 云在心 阅读(177) 评论(0) 推荐(0)

导航