BestCoder Round #52 (div.2)(hdu 5417,hdu 5418)
2015-08-24 16:45
267 查看
1.Victor and Machine
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5417
解题思路:
官方题解:
因为数据范围很小,所以我们可以手动模拟,枚举每个小球弹出的时刻,再特判一下机器的关闭情况就可以了。实际处理起来的话或许有些蛋疼,但是,只要细心一点并且耐心一点,都是能够AC的。
另外一种解法就是推公式,我们发现,在机器每次开启的时间,都有x/w+1个小球被弹出(无论w是否整除x),假设这个数目为a,那么每弹出a个小球就需要花费x+y的时间,那么,第n个小球弹出的时刻就是(n-1)/a*(x+y)+(n-1)%a*w。要注意的是,这里需要用(n-1)%a*w,因为题中求的是第n个小球弹出的时刻等于是弹出n-1个小球所花费的时间,然而,只要测试一下样例就能注意到这一点了。
AC代码:
#include <iostream> #include <cstdio> using namespace std; int main(){ int x,y,w,n; while(~scanf("%d%d%d%d",&x,&y,&w,&n)){ int ans = 0,sum; int i = 1; while(i < n){ sum = 0; while(i < n){ if(sum+w > x) break; sum += w; ans += w; i++; } if(i == n) break; ans += (x-sum)+y; i++; } printf("%d\n",ans); } return 0; }
2.Victor and World
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5418
解题思路:
/article/1958514.html
AC代码:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int INF = 0x3f3f3f; const int N = 18; //输入 int n,m; int dis ; int dp[1<<N] ;//记忆化搜索使用的数组 void floyd(){ for(int k=0; k<n; k++) for(int i=0; i<n; i++) for(int j=0; j<n; j++) if(dis[i][k]+dis[k][j]<dis[i][j]) dis[i][j]=dis[i][k]+dis[k][j]; } void solve(){ //用足够大的值初始化数组 memset(dp,INF,sizeof(dp)); dp[(1<<n)-1][0] = 0; //根据递推式依次计算 for(int s = (1<<n)-2; s >= 0; s--){ for(int v = 0; v < n; v++){ for(int u = 0; u < n; u++){ if(!(s>>u & 1)){ dp[s][v] = min(dp[s][v],dp[s|1<<u][u]+dis[v][u]); } } } } printf("%d\n",dp[0][0]); } int main(){ int T; scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m); int u,v,w; memset(dis,INF,sizeof(dis)); for(int i = 0; i < n; i++) dis[i][i] = 0; for(int i = 1; i <= m; i++){ scanf("%d%d%d",&u,&v,&w); u--;v--; dis[u][v] = dis[v][u] = min(dis[u][v],w); } floyd(); solve(); } return 0; }
相关文章推荐
- EntityFramework DbContext 线程安全
- SharePoint 2013 - Cross-domain Library
- 前缀+排序 HDOJ 4311 Meeting point-1
- 第3章 链表
- rabbitMQ 和 protoBuf 整合
- JAVA UUID 生成
- Matlab自动控制系统应用
- php利用smtp类轻松的发送电子邮件
- python iterator迭代器、yield、container容器和for循环的联系与区别
- Java贪吃蛇程序
- Apache shutdown unexpectedly启动错误解决方法
- 从C++到COM,学习笔记(1)
- 【转】KiB、MiB与KB、MB的区别
- centos 7.1开机/etc/rc.local脚本不执行的问题
- Xcode6 运行程序后,右侧Debug区域的Memory显示空白解决方法
- 自定义cell
- 十进制,二进制,八进制
- 一个简单的支持unicode的tstring类
- C++中的操作符重载
- 设计模式: 策略模式的实现