河南省第八届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题 平分游戏 题目描述 转眼间又过了一年,又有一届的师兄师姐要毕业了. 有些师兄师姐就去了景驰科技实习. 在景驰,员工是他们最宝贵的财富.只有把每一个人 ...
随机推荐
- <meta http-equiv="refresh" content="0; url=">是什么意思?
页面定期刷新,如果加url的,则会重新定向到指定的网页,content后面跟的是时间(单位秒),把这句话加到指定网页的<head></head>里一般也用在实时性很强的应用中, ...
- leetcode 125
125. Valid Palindrome Given a string, determine if it is a palindrome, considering only alphanumeric ...
- sscanf函数和正则表达式
看了几篇介绍sscanf函数,真是发现自己好多东西没理解透,详细介绍使用在sscanf中使用正则表达式. 第一篇: 此文所有的实验都是基于下面的程序: char str[10]; for (int i ...
- Office 开发版本号与版本对应关系
Office 开发版本号与版本对应关系: office97 : 8.0 office2000 : 9.0 officeXP(2002) : 10.0 office2003 : 11.0 office2 ...
- 不使用容器构建Registry
安装必要的软件 $ sudo apt-get install build-essential python-dev libevent-dev python-pip liblzma-dev 配置 doc ...
- 【转载】OpenGL超级宝典笔记——GLSL语言基础
变量 GLSL的变量命名方式与C语言类似.变量的名称可以使用字母,数字以及下划线,但变量名不能以数字开头,还有变量名不能以gl_作为前缀,这个是GLSL保留的前缀,用于GLSL的内部变量.当然还有一些 ...
- malloc()参数为0的情况
问题来自于<程序员面试宝典(第三版)>第12.2节问题9(这里不评价<程序员面试宝典>,就题论题): 下面的代码片段输出是什么?为什么? char *ptr; ))==NULL ...
- 【转】常用css命名规则
常用的css命名规则 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左 ...
- js window.open() 父窗口与子窗口的互相调用(未必有用)
javascript 父窗口与子窗口的互相调用 <html> <head></head> <body> 主要实现父子关系的页面 window.opene ...
- oracle 同时更新(update)多个字段多个值
--创建表A,B: create table A (a1 varchar2(33),a2 varchar2(33),a3 varchar2(33)); create table B (b1 varch ...