2014年百度之星程序设计大赛 资格赛第一题 (longlong)
2024-10-09 14:54:45
解题思路:
只要看(A-V)*K 这个公式的更新值是否大于等于A ,大于的话继续循环,否则报错
注意一点,数据会爆int
WA代码:
#include<stdio.h>
int main(){
long long n ,m, v, k;
int t;
scanf("%d",&t);
while(t--){
scanf("%lld%lld%lld%lld",&n,&m,&v,&k);
int cnt = ;
while(m < n){
if( (m - v) * k <= m ){
cnt = -;
break;
}
m = (m - v) * k ;
++cnt;
}
printf("%d\n",cnt);
}
return ;
}
AC代码:
#include <iostream>
using namespace std;
int main(){
long long n ,m, v, k;
int t;
cin >> t;
while(t--){
cin >> n >> m >> v >> k;
int cnt = ;
while(m < n){
if( (m - v) * k <= m ){
cnt = -;
break;
}
m = (m - v) * k ;
++cnt;
}
cout << cnt << endl;
}
return ;
}
AC代码(比较复杂):
#include<stdio.h>
#include<math.h>
int main(){
long long n ,m, v, k;
int t;
scanf("%d",&t);
while(t--){
scanf("%I64d%I64d%I64d%I64d",&n,&m,&v,&k);
long long ans = m;
if(ans >= n){
printf("0\n");
continue;
}
if((ans - v) * k <= ans || ans - v <= || k <= ||(ans - v) * k < ){
printf("-1\n");
continue;
}
int cnt = ;
while(ans < n){
++cnt;
if(ans - v <= || (ans - v) * k < ){
cnt = -;
break;
}
ans = (ans - v) * k ;
}
printf("%d\n",cnt);
}
return ;
}
最新文章
- unslider.js 实现移动web轮播
- 【英文版本】Android开源项目分类汇总
- 配置fabric-crashlytics教程
- PL/SQL不支持64位Oracle Client 解决办法
- SpringMVC 返回 html 视图页面,SpringMVC与Servlet,Servlet重定向与转发
- JQuery中国省市区无刷新三级联动查询
- 30岁IT男连续工作一个月 突然失聪
- Oracle学习第二天---Profile的使用
- js获取IP地址的方法小结
- 处理emacs-org模式TODO的一个脚本
- .NET MD5加密解密代码
- 高通平台MSM8916LCM模块移植(一)-bootloader部分
- 【踩坑】利用fastjson反序列化需要默认构造函数
- static 静态与非静态的区别
- stored information about method csdn
- Windows Community Toolkit 3.0 - InfiniteCanvas
- dokuwiki 安装配置
- alias命令详解:给命令设置别名
- JavaBean 和 pojo 的区别
- UVA 11796 Dog Distance(几何)
热门文章
- IOS 学习笔记(7) 控件 分隔栏控件(UISegmentControl)的使用方法
- Stack trace对性能的影响
- Linux下使用ps命令来查看Oracle相关的进程
- 让程序只运行一个实例(Delphi篇)(三种方法,其中使用全局原子的方法比较有意思)
- Tomcat+redis+nginx配置
- 基于Visual C++2013拆解世界五百强面试题--题3-打印螺旋数组
- HDU 1568 Fibonacci
- 统计难题(trie树)
- BFG
- FreeCodeCamp:Confirm the Ending