Link:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2234

土豪银行
Time Limit: 500 MS Memory Limit: 32768 K
Total Submit: 123(66 users) Total Accepted: 67(57 users) Rating:  Special Judge: No
Description
你是一个土豪,于是你决定发行自己的钱币。考虑到你是一个土豪,传统的一角,五毛,一块,五元,十块,五十元,一百块的币种机制,会让你印太多太多的钱币,这就很费纸,非常不环保。(你想100,000,000得多少张纸?嗯,没错,你是一个土豪……)
后来一天睡醒之后,你梦到一个数字P。于是你有了一个好注意:你的银行只发行P的次方的面值的纸币。意思是,你的银行只发行1, P,P^2, P^3, P^4 ...面额的纸币。(^表示指数,不是C语言中的异或)。
对于一个给定的P,当来了另一个土豪,想取款Q元时,你能否算出,你的银行最少需要给这位土豪多少张钱呢?
Input
第一行一个整数T,表示数据组数。(T < 500)
每组数据只有一行,包含两个数P,Q(0 < P,Q <= 10000)
Output
对于每组输入,输出一个整数,表示银行最少要给的钱的张数。
Sample Input
3
2 9
3 9
4 9
Sample Output
2
1
3
Source
哈尔滨理工大学第五届ACM程序设计竞赛(热身)

AC  code:

#include<iostream>
#include<stdio.h>
#include<map>
#include<vector>
#include<set>
#include<cstdlib>
#include<string.h>
#include<string>
#include<algorithm>
#include<cmath>
#define MAXN 1000010
#define EPS 1e-9
using namespace std;
int dp[MAXN],c[MAXN];
int main()
{//freopen("in.txt","r",stdin);int i,j,cnt,p,q,t,v;while(cin>>t){while(t--){cin>>p>>q;if(p==1){printf("%d\n",q);}else{cnt=0;c[++cnt]=1;v=p;while(v<=q){c[++cnt]=v;v*=p;}memset(dp,999999,sizeof(dp));dp[0]=0;for(i=1;i<=cnt;i++){for(j=c[i];j<=q;j++){dp[j]=min(dp[j-c[i]]+1,dp[j]);}}printf("%d\n",dp[q]);}}}return 0;
}

Link:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2236

Duang
Time Limit: 500 MS Memory Limit: 32768 K
Total Submit: 99(47 users) Total Accepted: 48(43 users) Rating:  Special Judge: No
Description
小破最近在一片空地上打了很多坑挖宝,可是都没有结果。就在她要放弃的那个晚上,她突然仰望天空,发现天上的星星连成一个字:duang。
她立刻跑到最近的一个坑,发现下面金光闪闪!她惊喜万分,掏出纸笔开始计算:
已知刚才她仰望天空的位置,和她打的所有坑的位置,那么她刚才跑到最近的一个坑,最少需要几步呢?
假设把空地看成一个n*n的格子,小破傻傻的,一步要么横着走一格,要么竖着走一格。注意,小破从原先位子上站起来也算一步。
Input
多组测试数据
每组测试数据第一行有三个正整数n,x,y。
n代表空地的长宽(n <= 100),(x,y)代表小破仰望天空的位置(1 <= x,y <= n)。

接下来n行表示空地的情况,'#'表示小破在此处打了一个坑,'.'表示没有打过坑。

数据保证小破最开始不在坑里。

Output
对于每组数据,输出小破到达一个坑所需要的最少的步数。
Sample Input
3 1 1
...
.#.
..#
4 1 1
..#.
..#.
.#..
#...
Sample Output
3
3
Source
哈尔滨理工大学第五届ACM程序设计竞赛(热身)
 

AC code:

#include<iostream>
#include<stdio.h>
#include<map>
#include<vector>
#include<set>
#include<cstdlib>
#include<string.h>
#include<string>
#include<queue>
#include<algorithm>
#include<cmath>
#define MAXN 1000010
#define EPS 1e-9
using namespace std;
int d[4][2]={-1,0,0,-1,1,0,0,1};
bool vis[111][111];
char m[111][111];
int n;
struct node{int sp;int x;int y;
}st;
int bfs()
{queue<node>q;node now,nex;memset(vis,false,sizeof(vis));int i;q.push(st);vis[st.x][st.y]=true;while(!q.empty()){now=q.front();q.pop();for(i=0;i<4;i++){nex.x=now.x+d[i][0];nex.y=now.y+d[i][1];if(nex.x>=0&&nex.x<n&&nex.y>=0&&nex.y<n&&!vis[nex.x][nex.y]){nex.sp=now.sp+1;if(m[nex.x][nex.y]=='#'){return nex.sp;}q.push(nex);vis[nex.x][nex.y]=true;}}}}
int main()
{//freopen("in.txt","r",stdin);int x,y,i,j;while(cin>>n>>x>>y){for(i=0;i<n;i++){cin>>m[i];}st.sp=1;st.x=x-1;st.y=y-1;cout<<bfs()<<endl;}return 0;
}

1128: 出租车费

时间限制: 1 Sec
内存限制: 32 MB
提交: 535
解决: 149
提交 状态

题目描述

某市出租车计价规则如下:起步4公里10元,即使你的行程没超过4公里;接下来的4公里,每公里2元;之后每公里2.4元。行程的最后一段即使不到1公里,也当作1公里计费。
一个乘客可以根据行程公里数合理安排坐车方式来使自己的打车费最小。
例如,整个行程为16公里,乘客应该将行程分成长度相同的两部分,每部分花费18元,总共花费36元。如果坐出租车一次走完全程要花费37.2元。
现在给你整个行程的公里数,请你计算坐出租车的最小花费。

输入

输入包含多组测试数据。每组输入一个正整数n(n<10000000),表示整个行程的公里数。
当n=0时,输入结束。

输出

对于每组输入,输出最小花费。如果需要的话,保留一位小数。

样例输入

39160

样例输出

1020.436

AC code:

#include<stdio.h>
int main()
{int n,a,b,sum1;double sum;while(scanf("%d",&n)&&n){sum=0;a=n/8;b=n%8;sum+=a*18;if(b<5){if(a!=0)sum+=b*2.4;elsesum+=10;}else{sum+=10+(b-4)*2;}sum1=(int)sum;if(sum==sum1)printf("%d\n",sum1);elseprintf("%.1lf\n",sum);}
}

Link: http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2238

围巾的纠结
Time Limit: 500 MS Memory Limit: 32768 K
Total Submit: 94(45 users) Total Accepted: 46(41 users) Rating:  Special Judge: No
Description

小破想要织一条围巾,可是她并不擅长于织围巾。由于工作太忙,每天她都只能织一点。为了快速的织完围巾,她决定直接把毛线球连在一起。围巾上有球球还是非常可爱的嘛~

于是小破去商店买了n个毛线球。每天晚上睡觉之前,她就抽出一点时间,把其中两个原本分开的毛线球织在一起。由于是睡觉之前干活,人太困了,过了m天之后,她发现自己完全织乱了,于是她决定拆掉重织。可是由于她的织法过于特殊,她发现,一旦几个毛线球被织成了一个圈,就不能完好的解开了。现在她想知道,她还能把这条"围巾"还原吗?

Input
多组测试数据
每组测试数据第一行有两个整数n,m(1 <= n <= 10000, 1 <= m <= 1000000)
接下来有m行,每行有两个数a,b,表示将a和b号毛球织到一起。
Output
对于每组测试数据,如果她能还原,则输出"YES", 否则输出"NO"
Sample Input
5 4
1 2
2 3
3 1
1 4
5 4
1 2
2 3
3 4
4 5
Sample Output
NO
YES
Source
哈尔滨理工大学第五届ACM程序设计竞赛(热身)

AC  code:

#include<iostream>
#include<stdio.h>
#include<map>
#include<vector>
#include<set>
#include<cstdlib>
#include<string.h>
#include<string>
#include<queue>
#include<algorithm>
#include<cmath>
#define MAXN 1000010
#define EPS 1e-9
using namespace std;
int n,m,a,b;
int fa[MAXN];
void init()
{for(int i=1;i<=n;i++){fa[i]=i;}
}
int fin(int root)
{int son,tmp;son=root;while(root!=fa[root]){root=fa[root];}while(son!=root){tmp=fa[son];fa[son]=root;son=tmp;}return root;
}
bool join(int x,int y)
{int r1,r2;r1=fin(x);r2=fin(y);if(r1!=r2){fa[r1]=r2;return true;}return false;
}
int main()
{//freopen("in.txt","r",stdin);int fg;while(cin>>n>>m){fg=1;init();while(m--){cin>>a>>b;if(!join(a,b)){fg=0;}}if(fg){printf("YES\n");}else{printf("NO\n");}}return 0;
}

哈尔滨理工大学第五届ACM程序设计竞赛(热身)相关推荐

  1. 河南省第五届ACM程序设计竞赛总结

    比赛最终排名:点击打开 5月12号去了上午6点半出发去郑轻,第一次离开南阳,有点小激动.下午热身赛时就有点不淡定了,很低级的错误居然出现了!!,题目发下来时,我看的第二题(英文的),小宋和夏丹看的第一 ...

  2. 科林明伦杯哈尔滨理工大学第九届程序设计竞赛

    A氵题 B错排公式 C 不太懂卡塔兰数是啥东西,于是乎写的是一个n^2的dp,暴力打表写文件里,然后复制到代码里,然后切掉了 打表代码 #include<bits/stdc++.h> us ...

  3. 科林明伦杯哈尔滨理工大学第九届程序设计竞赛 H 题(dfs)

    深度优先搜索!!!!! n 个数中取不超过 k 个数并将他们相加,请问有多少种不同的取法使得取出的数的和是质数 Input多组数据,第一行一个整数 T 表示数据组数(T<=5)对于每一组数据:第 ...

  4. “师创杯”山东理工大学第九届ACM程序设计竞赛 正式赛 F.校赛~校赛~【思维+规律题】

    校赛~校赛~ Time Limit: 1000MS  Memory Limit: 65536KB Submit  Statistic Problem Description SDUT 的校赛是从 20 ...

  5. [置顶]2010年东北大学ACM程序设计竞赛冬季校赛题解

    8题只做出4题比较easy的题,而且做得挺麻烦,看来还要多练练. AC的题如下 NEUOJ  1112 I Love Apple Description So many people love app ...

  6. c语言程序竞赛,2015年江西理工大学C语言程序设计竞赛(初级组)

    JankTao相亲记 解法:排序 #include #include #include #include #include #include #include #include using names ...

  7. 读ACM程序设计竞赛基础教程之-------技巧小结

    ACM程序设计竞赛基础教程 前言 分治算法 计数问题(统计数字出现个数) 查找等式的解(思维) 递归算法 汉诺塔问题 贪心算法 钓鱼问题 前言 鉴于本人原因,本文记录的是博主认为之前没有想过的思路和想 ...

  8. 次短路问题(陕西师范大学第九届ACM程序设计竞赛-F 新冠病毒要回家)

    求到顶点v的次短路时,有两种情况,要么是到其他某个顶点u的最短路再加上u->v的边,要么是到某个顶点u的次短路再加上u->v的边. 一般我们用Dijkstra求得最短路(无负权边),由此我 ...

  9. 华南师大 2017 年 ACM 程序设计竞赛新生初赛题解

    华南师大 2017 年 ACM 程序设计竞赛新生初赛题解 华南师范大学第很多届 ACM 程序设计竞赛新生赛(初赛)在 2017 年 11 月 20 日 - 27 日成功举行,共有 146 名同学有效参 ...

最新文章

  1. (C++)一行代码递归实现辗转相除法
  2. php实现cookie加密解密
  3. django_rest_framework之GenericAPIView(一)源码讲解
  4. 永洪报表工具_该怎么选BI工具
  5. python throw error_Python实用笔记——错误处理
  6. 首套房贷款首付多少?
  7. NLP学习03--递归神经网络RNN
  8. 前端页面加载速度优化---Ngnix之GZIP压缩
  9. Mozilla Firefox安装Firepath Firebug找xpath最新可用的方法附老版本Firefox下载链接
  10. 微信小程序web-view组件 打开外部url
  11. 70个晨会激励哲理小故事
  12. HTML5 codecademy
  13. 利用Python爬取拉勾网招聘信息
  14. C讲坛之猜数字游戏的实现
  15. 宝塔一键安装部署tipask登录出现错误:The email must be at least 8 characters怎么回事
  16. 【微信小程序-原生开发】添加自定义图标(以使用阿里图标库为例)
  17. oracle 表分区
  18. 编写一个截取字符串的函数
  19. html语言可以写微信小程序吗,微信小程序 语句
  20. 基于jMonkeyEngine的三维仿真场景搭建(一)

热门文章

  1. CentOS7系统下Java环境和tomcat的安装
  2. 计算机在幼儿园课程中的教学,计算机技术在幼儿教学中的运用策略
  3. CTU Open Contest 2016 Suspicious Samples(单调队列)
  4. Python数据分析之pandas(保姆级教程)
  5. 如何实现密码的显示和隐藏?
  6. 深度学习入门 一句话告诉你什么是神经网络(CNN RNN DNN)
  7. 刚刚加入博客的小白白
  8. 江苏省计算机高一考试试题,江苏省计算机等级考试试题参考
  9. canvas-绘制图片
  10. 射频测试 —— 蓝牙定频测试3