河南省第四届ACM程序设计大赛
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include <string>
#include <iostream>
#define INF 32768
#define mod 1000000007
#define ll long long
using namespace std; int Getnum(char s[])
{
int i, sum=; for(i=; s[i]; i++)
sum = sum* + s[i]-''; return sum;
} void Print(int num)
{
num--;
if(num<)
{
printf("%c", num+'A');
return ;
} Print(num/); printf("%c", num%+'A');
} int main()
{
int T;
scanf("%d", &T);
while(T--)
{
char s[]; scanf("%s", s); if(s[]>='' && s[]<='')
{
int num = Getnum(s);
Print(num);
printf("\n");
}
else
{
int sum=; for(int i=; s[i]; i++)
sum = sum* + s[i]-'A'+; printf("%d\n", sum);
}
}
return ;
}
C: 表达式求值
#include <iostream>
#include <stdio.h>
#include <cstring>
#include <algorithm> using namespace std;
#define met(a,b) (memset(a,b,sizeof(a)))
const int N=;
#define INF 0x3f3f3f3f char s[N]; int Find3(int x) ///找到当前括号匹配的,
{
int i, sum=; for(i=x; s[i]; i++)
{
if(s[i]=='(')
sum ++;
if(s[i]==',')
{
sum --;
if(sum==)
return i;
}
}
}
int Find4(int x) ///找到,后的第一个)
{
int i; for(i=x; s[i]; i++)
if(s[i]==')')
return i-;
} int Getnum(int L, int R)
{
int i, sum=; for(i=L; i<=R; i++)
sum = sum* + s[i]-'';
return sum;
} int Slove(int x)
{
int L=x+, Index1, Index2, Lsum, Rsum; Index1 = Find3(x);
Index2 = Find4(Index1); if(s[L+]>='' && s[L+]<='')
Lsum = Getnum(L+, Index1-);
else
Lsum = Slove(L+); if(s[Index1+]>='' && s[Index1+]<='')
Rsum = Getnum(Index1+, Index2);
else
Rsum = Slove(Index1+); if(s[x]=='a')
return Lsum+Rsum;
if(s[x+]=='a')
return max(Lsum, Rsum);
if(s[x+]=='i')
return min(Lsum, Rsum);
} int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int ans; scanf("%s", s); ans = Slove(); printf("%d\n", ans);
}
return ;
} /**
22
add(1,2)
max(1,999)
add(min(1,1000),add(100,99))
add(min(1,1000),max(1,add(100,99)))
*/
#include <iostream>
#include <stdio.h>
#include <string>
#include <algorithm> using namespace std; //这个表达式求值,要先算最小单元的数值,可以采用递归方式 char str[]; //使用全局数据保存字符串
int first;//字符当前位置 int fun() //函数,分析字符
{
int v,n;//保存数字及数字的位数
switch(str[first]) //分析字符串的开头字符
{
case 'm': //有可能是max,min
first+=;//指向括号
if(str[first-]=='i')//对于min
return min(fun(),fun()); //如min(3,5),递归时就会分别返回3和5,然后当成min的参数
else
return max(fun(),fun());
break; case 'a': //是add
first+=;
return fun()+fun(); //如add(3,5),递归时就会返回3和5
break;
case ',': //分隔符
case '(':
case ')':
first++;//跳过不处理
return fun();//继续递归
break;
default: //数字
sscanf(str+first,"%d%n",&v,&n);//从字符str+first开始将数字读入v,数字位数为n
first+=n;//走过数字
return v;
break; } } int main()
{
int n;
scanf("%d",&n);//n组测试数据
while(n--)
{
scanf("%s",str);//字符数据
cout<<fun()<<endl;
first=;//每次测试完要使first归零
} return ;
}
/**
1000
add(1,2)
max(1,999)
add(min(1,1000),add(100,99))
add(min(1,1000),max(1,add(100,99)))
*/
D: 走迷宫
#include <iostream>
#include <stdio.h>
#include <cstring>
#include <algorithm> using namespace std;
#define met(a,b) (memset(a,b,sizeof(a)))
const int N=;
#define INF 0x3f3f3f3f int n, flag;
int a[N][N], vis[N][N];
int dir[][]={{,},{,},{-,},{,-}}; void DFS(int x, int y, int Min, int Max)
{
if(x==n && y==n)
{
flag = ;
return ;
}
for(int i=; i<; i++)
{
int nx = x + dir[i][];
int ny = y + dir[i][];
if(nx>= && nx<=n && ny>= && ny<=n && a[nx][ny]>=Min && a[nx][ny]<=Max && !vis[nx][ny])
{
vis[nx][ny] = ;
DFS(nx, ny, Min, Max);
}
if(flag)
return ;
}
} int Slove(int mid, int Min, int Max)
{
int i; for(i=Min; i<=Max-mid; i++)
{
if(a[][]<i || a[][]>i+mid) continue;
if(a[n][n]<i || a[n][n]>i+mid) continue;
flag = ;
met(vis, );
vis[][] = ;
DFS(, , i, i+mid);
if(flag) return ;
}
return ;
} int main()
{
while(scanf("%d", &n)!=EOF)
{
int i, j, Max=-INF, Min=INF; for(i=; i<=n; i++)
for(j=; j<=n; j++)
{
scanf("%d", &a[i][j]);
Max = max(Max, a[i][j]);
Min = min(Min, a[i][j]);
} int L=, R=Max-Min, mid, w, ans=R;
while(L<=R)
{
mid = (L+R)/; w = Slove(mid, Min, Max);
if(w)
{
ans = min(ans, mid);
R = mid-;
}
else L = mid+;
} printf("%d\n", ans);
}
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程序设计大赛
D: 遥 控 器 #include<cstdio> #include<cstring> #include<iostream> #include<algor ...
- 河南省第八届ACM程序设计大赛
A:挑战密室 #include <iostream> #include <cstdio> #include <cstring> #include <algor ...
- 河南省第八届ACM程序设计大赛总结
简单的对这次省赛做个总结:总体来说这个比赛过程中做的还算比较顺利,虽然中间多多少少遇到一些坑,正式比赛开始后,我们就开始找水题,当然了我首先把英文题目翻译了一遍,发现了一道水题,这道题目其实就是判断点 ...
- 西南科技大学第十一届ACM程序设计大赛发言稿
西南科技大学第十一届ACM程序设计大赛发言稿 各位老师.志愿者及参赛选手: 大家好,我是来自计科学院卓软1301的哈特13,很荣幸今天能站在这里代表参赛选手发言. 回想起来,我参加ACM比赛已经快两年 ...
- 第13届 广东工业大学ACM程序设计大赛 C题 平分游戏
第13届 广东工业大学ACM程序设计大赛 C题 平分游戏 题目描述 转眼间又过了一年,又有一届的师兄师姐要毕业了. 有些师兄师姐就去了景驰科技实习. 在景驰,员工是他们最宝贵的财富.只有把每一个人 ...
- 河南省第四届ACM省赛(T3) 表达式求值
表达式求值 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min ...
随机推荐
- 在svg中的line和path根据路径返回x,y
由于path有自带的api可获得总长度,和某个长度返回的坐标. var total = d.path.getTotalLength();//返回总长度 var point = d.path.getPo ...
- linux命令(3):pwd命令
Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. ...
- WdatePicker日期控件的用法
前台 <td height="25" width="*" align="left"> <asp:TextBox ID=&q ...
- aspx页面,中文乱码解决方案
由于文件编码方式编码方式不统一出现样式中文乱码解决方案: 今天碰到的问题:页面字体样式设置的'微软雅黑',可页面没引用.我调试看到样式出现中文乱码了 这种问题,就需要转换文件的编码方式,如下两步即可解 ...
- 课堂Beta发布140字评论
Beta发布140字评论: 第一组:飞天小女警 此项目组的功能是礼物挑选,创意十足,用户只要一听名字便会被深深吸引,并且页面设计感,时尚感十足,不断吸引客户的眼球,而且发布到云服务器上面. 第二组:金 ...
- ThinkPad L440 FN键设置
刚入手了ThinkPad L440,用起来相当不错,嘿嘿! L440系统默认(F1-F12)键盘为系统默认功能键,主要控制音量.亮度.连接投影仪等. 因为编写程序需要调试,经常用到F10,F11等键, ...
- 【随笔】js加载
有时候,当发现js操作一个dom的时候,发现dom没有找到,这是由于html没有加载完就开始操作该dom的缘故,所以需要在html文档加载完后再加载js,于是我们可以这么做: js方法:window. ...
- (转)ant 使用指南
ant 使用指南 文件转载自:http://www.cnblogs.com/hoojo/archive/2013/06/14/java_ant_project_target_task_run.htm ...
- MVc Forms Membership rolemanage 角色权限验证管理
Forms 登录验证Membership 权限验证rolemanage 角色管理 以往的项目中只有单纯的Forms 验证今天想把这三个结合到mvc 中发现要导入aspnet_ 相关表,但是有个问题验 ...
- REDIS源码中一些值得学习的技术细节02
Redis中散列函数的实现: Redis针对整数key和字符串key,采用了不同的散列函数 对于整数key,redis使用了 Thomas Wang的 32 bit Mix Function,实现了d ...