西山居 初赛
来源:互联网 发布:手机邮箱软件排行 编辑:程序博客网 时间:2024/05/01 22:05
第一题: 魔法串 水题,贴代码:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <cmath>#include <stack>#include <map>#include <string>#define LL long long#define DB doubleusing namespace std;const int N = 1009;char a[N],b[N];int v[39][39];vector<int> L[39];queue<int> que;void init(){ memset(v,0,sizeof(v)); for(int i=0;i<26;i++) { v[i][i] = 1; while(!que.empty()) que.pop(); que.push(i); while(!que.empty()) { int e = que.front();que.pop(); for(int j=0;j<(int)L[e].size();j++) { int to = L[e][j]; if(v[i][to]==0) { v[i][to] = 1; //que.push(to); } } } }}int A[N],B[N];int solve(){ int l1 = strlen(a),l2=strlen(b); for(int i=0;i<l1;i++) A[i] = a[i]-'a'; for(int j=0;j<l2;j++) B[j] = b[j]-'a'; for(int i=0,j=0;i<l1;i++) { int f = 0; for(;j<l2;) { if(v[B[j]][A[i]]) { j++; f = 1;break; } j++; } if(!f) return 0; }return 1;}int main(){ #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); #endif int cas,T=1;scanf("%d",&cas); while(cas--) { scanf("%s%s",a,b); int m; scanf("%d",&m); for(int i=0;i<36;i++) L[i].clear(); while(m--) { char c1[3],c2[3]; scanf("%s%s",c1,c2); L[c1[0]-'a'].push_back(c2[0]-'a'); } init(); printf("Case #%d: %s\n",T++,solve()?"happy":"unhappy");//solve() } return 0;}
第二题:比赛难度 随便搞搞,怎么搞都能过.
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <cmath>#include <stack>#include <map>#include <string>#define LL long long#define DB doubleusing namespace std;const int N = 10009;struct nod{ int val1,val2,p; bool operator<(const nod t) const { return val1>t.val1||(val1==t.val1&&val2>t.val2); }};priority_queue<nod> que;int re[N];int n,m;int solve(){ sort(re,re+n); re[n] = 0x3f3f3f3f; nod e,t; while(!que.empty()) que.pop(); e.p =0;e.val1 = re[0]; e.val2 =0; que.push(e); for(int i=1;i<m;i++) { e = que.top();que.pop(); int p = e.p +1; t.p = p; t.val1 = e.val2+re[p]; t.val2 = e.val2; que.push(t); t.val1 = e.val1+re[p]; t.val2 = e.val1; que.push(t); }e = que.top(); return e.val1;}int main(){ #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); #endif int cas,T=1;scanf("%d",&cas); while(cas--) { scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%d",&re[i]); printf("Case #%d: %d\n",T++,solve()); } return 0;}
第三题: 不会...好伤心..
- 西山居 初赛
- 金山西山居初赛第一场
- 金山西山居初赛第二场
- 金山西山居初赛第三场
- 金山西山居初赛第四场
- 西山居初赛第四场1001
- 西山居初赛第三场1001
- 西山居初赛第一场1001
- 2013金山西山居初赛第一场(hdu4545-hdu4547)
- 金山西山居2013程序挑战赛初赛 第一题
- 金山西山居2013程序挑战赛初赛 第三题
- 金山西山居初赛(2)第一题美素数--hdu4548
- ACM之金山西山居创意游戏程序挑战赛-初赛
- 2013金山西山居创意游戏程序挑战赛——初赛(1) A 魔法串
- 2013金山西山居创意游戏程序挑战赛——初赛(1) C CD操作
- 2013金山西山居创意游戏程序挑战赛——初赛(1)题解
- 2013金山西山居创意游戏程序挑战赛——初赛(1)
- 2013金山西山居创意游戏程序挑战赛——初赛(1) A 魔法串
- 卓大师一键root权限图文教程(附卓大师刷机专家下载)
- 分享一个挺不错的Git视频教程
- 技术普及帖:你刚才在淘宝上买了一件东西
- 毕业设计至获取两个时间段时间的所有日期
- 求电线与Bus之间密度...
- 西山居 初赛
- QT目录模型QDirModel的使用
- fixed和setprecision的使用
- eclipse+adt 新手问题 R.java 不能自动产生
- 推荐一个背景建模的开源库
- Flex学习笔记(二)
- 蓝牙API
- cocos2d-x 开发中使用的一些工具
- Flex学习笔记(三)