河南省第八届ACM程序设计大赛
A:挑战密室
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <stack>
#include <map>
#include <vector>
#include <queue>
using namespace std;
typedef long long LL;
#define N 600
#define met(a, b) memset(a, b, sizeof(a))
#define INF 0x3f3f3f3f char s[N]; int Find(int x, int len)
{
int i; for(i=x; i<=len; i++)
if(s[i]=='=')
return i+;
}
int Find2(int x, int len)
{
int i; for(i=x; i<=len; i++)
if(s[i]=='+')
return i-;
return len;
} int Find1(int x)
{
int i, len = strlen(s)-; for(i=x; i<len; i++)
if(s[i]==')')
return i-; return len;
} int Slove(int start, int e)
{
int k=, sum=, pre, i; for(i=start; i<=e; i++)
{
if(s[i]>='' && s[i]<='')
k = k* + s[i]-'';
else break;
} for( ;i<=e; i++)
{
if(s[i]=='N')
{
if(s[i+]=='a')
{
sum += ;
pre = ;
i++;
}
else
{
sum += ;
pre = ;
}
}
else if(s[i]=='C')
{
if(s[i+]=='l')
{
sum += ;
pre = ;
i++;
}
else if(s[i+]=='a')
{
sum += ;
pre = ;
i++;
}
else
{
sum += ;
pre = ;
}
}
else if(s[i]=='O')
{
sum += ;
pre = ;
}
else if(s[i]=='S')
{
sum += ;
pre = ;
}
else if(s[i]=='H')
{
sum += ;
pre = ;
}
else if(s[i]=='A')
{
sum += ;
pre = ;
i++;
}
else if(s[i]=='Z')
{
sum += ;
pre = ;
i++;
}
else if(s[i]=='(')
{
int Index = Find1(i);
int w = Slove(i+, Index);
sum += w;
pre = w;
i = Index+;
}
else
{
int z=;
while(s[i]>='' && s[i]<='')
{
z = z* + s[i]-'';
i++;
}
i--;
sum += (z-)*pre;
}
} if(k==) return sum;
else return k*sum;
} int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int Index1, Index2, sum, len; scanf("%s", s); len = strlen(s)-; Index1 = Find(, len);
Index2 = Find2(Index1, len);
sum = Slove(Index1, Index2); printf("%04d\n", sum);
}
return ;
}
B:最大岛屿
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <stack>
#include <map>
#include <vector>
#include <queue>
using namespace std;
typedef long long LL;
#define N 550
#define met(a, b) memset(a, b, sizeof(a))
#define INF 0x3f3f3f3f int s[N][N];
int n, m, Max, dir[][]={{-,-},{-,},{-,},{,-},{,},{,-},{,},{,}}; int DFS(int x, int y)
{
int i, nx, ny, sum=; s[x][y] = ;
for(i=; i<; i++)
{
nx = x + dir[i][];
ny = y + dir[i][];
if(nx>= && nx<n && ny>= && ny<m && s[nx][ny])
{
sum += DFS(nx, ny) + ;
}
} return sum;
} int main()
{
int T; while(scanf("%d%d%d", &n, &m, &T)!=EOF)
{
int i, j, ans, sum=, Max=; met(s, );
for(i=; i<n; i++)
for(j=; j<m; j++)
scanf("%1d", &s[i][j]); for(i=; i<n; i++)
for(j=; j<m; j++)
{
if(s[i][j]==)
{
ans = DFS(i, j) + ;
///printf("%d\n", ans);
if(ans) sum++;
Max = max(Max, ans);
}
} printf("%d %d\n", sum, Max*T);
}
return ;
}
C:最小换乘
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
#include<map>
using namespace std;
#define N 1305
#define INF 0x3f3f3f3f
#define met(a, b) memset(a, b, sizeof(a)) int vis[N], G[N][N], n, dist[N]; int Dij(int s)
{
met(vis, );
dist[s] = ;
///vis[s] = 1;
for(int i=; i<=n; i++)
{
int Min = INF, Index = -;
for(int j=; j<=n; j++)
{
if(!vis[j] && Min>dist[j])
{
Min = dist[j];
Index = j;
}
}
if(Index == -)break;
vis[Index] = ;
for(int j=; j<=n; j++)
{
if(!vis[j] && dist[j] > dist[Index]+G[Index][j])
{
dist[j] = dist[Index] + G[Index][j];
}
}
}
return dist[n];
} int main()
{
int m, T;
scanf("%d", &T);
while(T--)
{
scanf("%d %d", &m, &n); for(int i=; i<=n; i++)
{
dist[i] = INF;
for(int j=; j<=n; j++)
G[i][j] = INF;
G[i][i] = ;
} for(int i=; i<=m; i++)
{
char ch; int k = , a[N]; while(scanf("%d%c", &a[k], &ch),ch==' ')
k++; for(int j=; j<=k; j++)
{
for(int ii=j+; ii<=k; ii++)
G[a[j]][a[ii]] = ;
}
}
int ans = Dij();
if(ans == INF)
puts("NO");
else
printf("%d\n", ans-);
}
return ;
} /** 2
3 7
6 7
4 7 3 6
2 1 3 5
2 6
1 3 5
2 6 4 3 */
D:引水工程
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
#include<map>
using namespace std;
#define N 305
#define INF 0x3f3f3f3f
#define met(a, b) memset(a, b, sizeof(a)) int vis[N], G[N][N], n, dist[N]; int Prim(int s)
{
for(int i=; i<=n; i++)
dist[i] = G[s][i];
met(vis, );
vis[s] = ;
int ans = ;
for(int i=; i<=n; i++)
{
int Min = INF, Index = -;
for(int j=; j<=n; j++)
{
if(!vis[j] && dist[j]<Min)
{
Min = dist[j];
Index = j;
}
}
if(Index == -)break;
vis[Index] = ;
ans += Min;
for(int j=; j<=n; j++)
{
if(!vis[j] && dist[j]>G[Index][j])
{
dist[j] = G[Index][j];
}
}
}
return ans;
} int main()
{
int w, T;
scanf("%d", &T);
while(T--)
{
scanf("%d", &n); for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
{
G[i][j] = G[j][i] = INF;
}
} for(int i=; i<=n; i++)
{
scanf("%d", &w);
G[][i] = G[i][] = w;
}
for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
{
scanf("%d", &w);
G[i][j] = w;
}
}
int ans = Prim();
printf("%d\n", ans);
}
return ;
}
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
#include<map>
using namespace std;
#define N 10100
#define met(a, b) memset(a, b, sizeof(a)) int main()
{
int n, m, x[N], y[N], a, b;
while(scanf("%d %d", &n, &m)!=EOF)
{
for(int i=; i<n; i++)
{
scanf("%d %d", &x[i], &y[i]);
}
for(int i=; i<=m; i++)
{
scanf("%d %d", &a, &b);
int cnt1 = , cnt2 = ;
for(int j=; j<n; j++)
{
if((x[j]>a && y[j]>b) || (x[j]<a && y[j]<b))
cnt1++;
else if((x[j]<a && y[j]>b) || (x[j]>a && y[j]<b))
cnt2++;
}
printf("%d\n", cnt1-cnt2);
}
}
return ;
}
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <stack>
#include <map>
#include <vector>
#include <queue>
using namespace std;
typedef long long LL;
#define N 1100
#define met(a, b) memset(a, b, sizeof(a))
#define INF 0x3f3f3f3f int a[N]; int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int n, k, i, j;
double Max=, ans; scanf("%d%d", &n, &k); met(a, );
for(i=; i<n; i++)
scanf("%d", &a[i]); for(i=; i<n; i++)
{
int sum = ;
for(j=i; j<n; j++)
{
sum += a[j];
if((j-i+)>=k)
{
ans = (sum*1.0)/(j-i+);
Max = max(Max, ans);
}
}
} printf("%d\n", (int)(Max*));
}
return ;
}
河南省第八届ACM程序设计大赛的更多相关文章
- nyoj 1238 最少换乘 (河南省第八届acm程序设计大赛)
题目1238 题目信息 执行结果 本题排行 pid=1238" style="text-decoration:none; color:rgb(55,119,188)"&g ...
- nyoj 1239 引水project (河南省第八届acm程序设计大赛)
题目1239 pid=1239" style="color:rgb(55,119,188)">题目信息 pid=1239" style="col ...
- nyoj1237 最大岛屿(河南省第八届acm程序设计大赛)
题目1237 pid=1237" style="color:rgb(55,119,188)">题目信息 执行结果 本题排行 讨论区 最大岛屿 时间限制:1000 m ...
- 河南省第八届ACM程序设计大赛总结
简单的对这次省赛做个总结:总体来说这个比赛过程中做的还算比较顺利,虽然中间多多少少遇到一些坑,正式比赛开始后,我们就开始找水题,当然了我首先把英文题目翻译了一遍,发现了一道水题,这道题目其实就是判断点 ...
- 河南省第四届ACM程序设计大赛
A: 序号互换 #include <cstdio> #include <cstdlib> #include <cstring> #include <algor ...
- 河南省第五届ACM程序设计大赛
D: 遥 控 器 #include<cstdio> #include<cstring> #include<iostream> #include<algor ...
- “玲珑杯”郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-正式赛(总结)
这次轻院校赛,我们去了五个队,怀着打酱油的心态早早爬起来坐上校车出发了,由于昨晚室友打游戏,以及看视频大笑...没睡好,快1点才睡着,感觉特别困,车上没地方,睡不着,就在车上闭目养神,由于在新校区,不 ...
- 西南科技大学第十一届ACM程序设计大赛发言稿
西南科技大学第十一届ACM程序设计大赛发言稿 各位老师.志愿者及参赛选手: 大家好,我是来自计科学院卓软1301的哈特13,很荣幸今天能站在这里代表参赛选手发言. 回想起来,我参加ACM比赛已经快两年 ...
- 第13届 广东工业大学ACM程序设计大赛 C题 平分游戏
第13届 广东工业大学ACM程序设计大赛 C题 平分游戏 题目描述 转眼间又过了一年,又有一届的师兄师姐要毕业了. 有些师兄师姐就去了景驰科技实习. 在景驰,员工是他们最宝贵的财富.只有把每一个人 ...
随机推荐
- 洛谷P3372 【模板】线段树 1
P3372 [模板]线段树 1 153通过 525提交 题目提供者HansBug 标签 难度普及+/提高 提交 讨论 题解 最新讨论 [模板]线段树1(AAAAAAAAA- [模板]线段树1 洛谷 ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写以及读写分离
1.环境准备 前端Nginx:10.160.65.44 后端WEB服务器两台:10.160.65.49/10.160.65.50 2.安装Nginx: 下载nginx-1.9.15.tar.gz,放置 ...
- img外头包着a时底部出现的一小段高度的解决方法。图片水平垂直居中用css解决的方法。
<a><img/></a> 这种结构有时候在界面预览的时候会出现一段多出来的高度.这个高度,一开始我很奇怪是什么原因产生的.鼠标移动到a标签上会有高度出现,一开始我 ...
- VC++ 控制外部程序,向外部程序发送一个消息的方法
这里需要考虑两部分的内容: 发送端: 查找对应的窗体,找到CWnd的值 向窗体发送消息 举例: CWnd* wnd = FindWindow(NULL, _T("选择题做题过程中" ...
- HDU 5183 Negative and Positive (NP) ——(后缀和+手写hash表)
根据奇偶开两个hash表来记录后缀和.注意set会被卡,要手写hash表. 具体见代码: #include <stdio.h> #include <algorithm> #in ...
- Android-Junit-Report测试报告生成——Android自动化测试学习历程
视频地址: http://www.chuanke.com/v1983382-135467-384869.html 这个内容其实已经在用了,我在上一篇文章robotium—只有apk文件的测试中已经讲过 ...
- DrawerLayout学习,抽屉效果
第一节: 注意事项 *主视图一定要是DrawerLayout的第一子视图 *主视图宽度和高度匹配父视图,因为当你显示主视图时,要铺满整个屏幕,用户体验度较高 *必须显示指定的抽屉视图的android: ...
- 关于Android中混淆的问题
1.签名打包后库依赖报错,提示找不到依赖库的方法. 原因:混淆,依赖库的方法被混淆了. 解决方法:过滤混淆,即不要混淆这依赖库的文件. -keep class de.greenrobot.event. ...
- ajax 调用 JSON.parse();
$.ajax({ type : "POST", data:{ createStartTime:createStartT ...
- Scrum会议(Beta版本)
组名:天天向上 组长:王森 组员:张政.张金生.林莉.胡丽娜 代码地址:HTTPS:https://git.coding.net/jx8zjs/llk.git SSH:git@git.coding.n ...