随笔分类 -  ACM~~HDU

1
摘要:生日猜猜猜Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 0Accepted Submission(s): 0Problem Description小明对生日十分看重,因为他可以得到祝福,可以和朋友亲人一起分享快乐,可以为自己的人生做一次总结,并且...能够收到好多礼物!不过小明是个神秘的人,不会轻易告诉你他的生日,现在他想到一个办法,让你去猜他的生日是哪一天。小明会告诉你如下三个信息:1. 出生月份和出生日子的最大公约数;2. 出生月份和出生 阅读全文
posted @ 2013-05-18 21:03 OpenSoucre 阅读(272) 评论(0) 推荐(0)
摘要:Number SequenceTime Limit: 10000/5000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7731Accepted Submission(s): 3520Problem DescriptionGiven two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 <= M <= 10000, 1 <= N <= 100 阅读全文
posted @ 2013-05-16 20:06 OpenSoucre 阅读(175) 评论(0) 推荐(0)
摘要:(1) 判断是否有回路,这个可以用并查集来做,一旦给定的两个节点a,b是属于同一个集合,那么便可以判定有回路(2)看是否只有一个联通分支,这个可以用并查集来做,最终并查集只有一个根节点 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 5 #define MAX 100000 + 5 6 using namespace std; 7 8 int parent[MAX]; 9 bool used[MAX];10 11 void Make_Set(){12 for(int i = 0 阅读全文
posted @ 2013-04-16 10:55 OpenSoucre 阅读(177) 评论(0) 推荐(0)
摘要:1 #include <iostream> 2 #include <vector> 3 4 using namespace std; 5 6 int main(){ 7 int n; 8 while(cin >> n && n){ 9 vector<int> a(n);10 for(int i = 0; i < n; i ++ ) cin >> a[i];11 int cnt = 0;12 while(1){13 int k;14 for(k = 0; k <... 阅读全文
posted @ 2013-04-11 12:10 OpenSoucre 阅读(152) 评论(0) 推荐(0)
摘要:1 #include <iostream> 2 #include <vector> 3 #include <cstdio> 4 #include <cstring> 5 #include <algorithm> 6 using namespace std; 7 8 int main(){ 9 vector<string> first,second;10 string a,b;11 bool exitFlag = false;12 while(1){13 getline(cin,a);14 if(a == "#&q 阅读全文
posted @ 2013-04-10 23:08 OpenSoucre 阅读(161) 评论(0) 推荐(0)
摘要:最长公共子序列的变形题,算法导论公共子序列后的练习题有题是类似的注意在公共子序列中要判断a[i]和b[j]相等,而此题是考虑相似,不要求相等 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <cstdio> 5 #include <cstring> 6 #include <string> 7 #include <map> 8 9 #define MAX 100 + 510 using namespace st 阅读全文
posted @ 2013-04-10 22:13 OpenSoucre 阅读(221) 评论(0) 推荐(0)
摘要:1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <string> 5 #define MAX 200 6 using namespace std; 7 8 struct stu{ 9 int id;10 string time;11 };12 13 bool cmp(stu a,stu b){14 return a.time<b.time;15 }16 17 int main(){18 int n;19 while(cin >> 阅读全文
posted @ 2013-04-10 17:22 OpenSoucre 阅读(162) 评论(0) 推荐(0)
摘要:转换成最大子序列和 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <cstring> 5 6 #define MAX 200 7 using namespace std; 8 9 int main(){10 int n;11 while(cin >>n){12 int arr[MAX][MAX]={0};13 for(int i = 1; i<= n; i ++ ){14 for(int j = 1; j <= n.. 阅读全文
posted @ 2013-04-10 16:48 OpenSoucre 阅读(133) 评论(0) 推荐(0)
摘要:1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <map> 5 #include <string> 6 7 using namespace std; 8 9 struct matrix{10 int row,col;11 };12 13 int main(){14 int n;15 cin >>n;16 map<string,matrix> a;17 for(int i = 0;i < n; i ++ 阅读全文
posted @ 2013-04-10 16:16 OpenSoucre 阅读(210) 评论(0) 推荐(0)
摘要:计算几何基础问题,具体可以参考算法导论p577,确定两个线段是否相交 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 5 using namespace std; 6 7 struct point{ 8 double x,y; 9 };10 11 struct segment{12 point p1,p2;13 };14 15 double direction(point p1, point p2, point p3){16 return (p2.x-p1.x)*(p3.y 阅读全文
posted @ 2013-04-10 14:51 OpenSoucre 阅读(162) 评论(0) 推荐(0)
摘要:最长递增子序列 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <cstring> 5 #define MAX 1001 6 using namespace std; 7 8 int dp[MAX]; 9 10 int main(){11 int n;12 while(cin >> n && n){13 int player[MAX];14 for(int i = 1 ; i <= n ; i ++ ) cin 阅读全文
posted @ 2013-04-10 13:54 OpenSoucre 阅读(144) 评论(0) 推荐(0)
摘要:1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <cstring> 5 6 #define MAX 1001 7 using namespace std; 8 9 struct cloth{10 int xi,yi,ci;11 };12 int dp[MAX][MAX]={0};13 14 int main(){15 int T;16 cin >> T;17 while(T--){18 int N,X,Y;19 cin >.. 阅读全文
posted @ 2013-04-09 23:18 OpenSoucre 阅读(184) 评论(0) 推荐(0)
摘要:此题一定要注意输入是 n || m 不是 n&&m, 就因为这个WA了几次此题是01背包的增加型,不要完全套01背包,由于是概率所以要考虑乘法,题目要求的是至少被录取,根据概率论,求其反面简单 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <cstdio> 5 #include <cstring> 6 7 using namespace std; 8 9 int main(){10 int n,m;11 while 阅读全文
posted @ 2013-04-09 21:43 OpenSoucre 阅读(156) 评论(0) 推荐(0)
摘要:像下面代码直接利用二进制求解多重背包会超时 1 #include <iostream> 2 #include <cstdio> 3 #include <cstdlib> 4 #include <vector> 5 #include <algorithm> 6 7 using namespace std; 8 9 int main(){10 int n,m;11 while(cin>>n>>m && n && m){12 vector<int> A(n),C(n);13 阅读全文
posted @ 2013-04-09 17:34 OpenSoucre 阅读(187) 评论(0) 推荐(0)
摘要:多维费用背包 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 5 using namespace std; 6 7 struct good { 8 int a,b,val; 9 };10 11 int main(){12 int n,v1,v2,k;13 while(cin >> n>>v1>>v2>>k){14 vector<good> commodity(n);15 for(int i = 0; i < 阅读全文
posted @ 2013-04-09 15:39 OpenSoucre 阅读(244) 评论(0) 推荐(0)
摘要:利用传统的完全背包解法会超时,下面代码超时 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 5 #define INF 1<<30 6 using namespace std; 7 8 int main(){ 9 int T;10 cin >> T;11 while(T--){12 int E,F;13 cin >>E>>F;14 int pigWeight =F-E;15 int n;16 cin >... 阅读全文
posted @ 2013-04-08 23:03 OpenSoucre 阅读(172) 评论(0) 推荐(0)
摘要:此题实在无语就因为把判断输入条件写成 n!=-1就WA了几次,自己以后要多注意 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <cstdio> 5 #include <cmath> 6 7 using namespace std; 8 9 int main(){10 int n;11 while(cin >> n && n >= 0){12 int v,num,sumV = 0;13 vector 阅读全文
posted @ 2013-04-08 22:22 OpenSoucre 阅读(159) 评论(0) 推荐(0)
摘要:1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 5 using namespace std; 6 7 int main(){ 8 int n; 9 while(cin >>n && n){10 vector<int> food(n);11 for(int i = 0; i < n; i ++ ) cin >> food[i];12 int price;13 cin >> price;14 if(price 阅读全文
posted @ 2013-04-08 21:25 OpenSoucre 阅读(180) 评论(0) 推荐(0)
摘要:1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 5 using namespace std; 6 7 int main(){ 8 int T; 9 cin >> T;10 while(T--){11 int N, V;12 cin >> N>>V;13 vector<int> value(N), volume(N);14 for(int i = 0; i < N; i ++) cin >>value[i];1 阅读全文
posted @ 2013-04-08 21:01 OpenSoucre 阅读(142) 评论(0) 推荐(0)
摘要:1 #include <iostream> 2 #include <algorithm> 3 #include <vector> 4 #include <cstdio> 5 6 #define MAX 20 + 3 7 8 using namespace std; 9 10 const int dx[] = {-1,1,0,0};11 const int dy[] = {0,0,-1,1};12 13 int main(){14 int n,m;15 while( cin>>n>>m && n && 阅读全文
posted @ 2013-04-07 20:20 OpenSoucre 阅读(221) 评论(0) 推荐(0)

1