博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF-697B Barnicle与691C Exponential notation
阅读量:5117 次
发布时间:2019-06-13

本文共 3317 字,大约阅读时间需要 11 分钟。

      无聊写两个题解吧,上午做比赛拉的,感触很多!

                                                                   

time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

        Barney is standing in a bar and starring at a pretty girl. He wants to shoot her with his heart arrow but he needs to know the distance between him and the girl to make his shot accurate.

        题意很简单,学过c语言的看样例就知道什么意思了,就是特殊情况实在太多,写的我好烦!

#include
using namespace std;const int N=1000+10;char a[N];int main(){ int i,j; while(~scanf("%s",a)) { int x=0,k1=0,k2=0; int len=strlen(a); int zheng=0; for(i=0; a[i]!='.'; i++) zheng=zheng*10+(a[i]-'0');//整数部分 k1=i; int k3=0; for(i=len-1;; i--) if(a[i]=='e') break; k2=i;//e的位置; j=k2-1; for(j=j; j>=0; j--) if(a[j]>'0'&&a[j]<='9') break; k3=j;//左起第一个不为0的位置,相当于舍去后缀0; if(zheng==0)//注意题目说了a、b 同时为0; { int f=0; for(i=0; i<=k3; i++) { printf("%c",a[i]); f=1; } if(!f) printf("0");//这是防0.0这种样例; printf("\n"); } else { i=k2+1; for(i=i; i
=k2) { if(zheng!=0) printf("%d",zheng); i=k1+1; for(i=i; i
 思维不行,代码能力勉强可以,导致以上写的比较繁琐,若有不懂的地方欢迎在评论区留言!

   

 
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

             You are given a positive decimal number x.

   这道题就是上一题的逆过程,给出这个实数,要你化成p.qEb的形式;

   基本和上面差不多,就是注意一下前缀0与后缀0;

#include
using namespace std;const int N=1e6+10;char a[N];char b[N];int main(){ int i; while(~scanf("%s",a)) { int len=strlen(a); int k1=0,k2=0,k3=0; for(i=len-1; i>=0; i--) if(a[i]>'0'&&a[i]<='9') { k3=i;//右起第一个不为0的位置; break; } for(i=0; i
'0'&&a[i]<='9') { k1=i;//左起第一个不为0的位置; break; } for(i=0; i
=k1&&k2<=k3) { for(i=k1; i<=k3; i++) { if(a[i]=='.') continue; printf("%c",a[i]); if(i==k1) printf("."); } if(k2-k1==1) { printf("\n"); continue; } printf("E%d\n",k2-k1-1); } else { for(i=k1; i<=k3; i++) { if(a[i]=='.') continue; printf("%c",a[i]); if(i==k1&&k1!=k3) printf("."); } if(k2-k1==1) continue; printf("E%d\n",k2-k1-1); } } } return 0;}
   这个代码看起来貌似没有上一题那么复杂,主要是思维思路要清晰,找好方法,一遍A;

   下面就这两题说说我的感想吧:

    就在昨天,我悟出了一个很重要又很平凡的方法。就是:做题,千万要想好思路再去写,思路清晰了代码自然很快就出来了,可是思维很混乱脑袋模模糊糊或者有一点想法就着手写,写出来是运气,写不出来(卡壳)是正常,就是这样不知道浪费了多少时间;一个题,静下心来做不会发很多时间(个人认为),可是往往大部分时间就是心浮气躁,往往一卡壳就又得停下来分析,最后发现思路错了,等于一直在做无用功,题没做出来时间又过去了,效率低下!!

     

转载于:https://www.cnblogs.com/nyist-TC-LYQ/p/7208206.html

你可能感兴趣的文章
解析数字签名的Substring结构
查看>>
数据库锁简析(转载)
查看>>
SQL语句小结
查看>>
20180726 (面向对象:接口类和抽象类 多态 封装)
查看>>
浏览器窗口可视区域大小
查看>>
js事件类型
查看>>
在Excel中制作金字塔条形图
查看>>
python数据分析实用小抄
查看>>
Numpy基础数据结构 python
查看>>
用IDLE调试python程序
查看>>
Java IO流 之 BufferedReader
查看>>
js判断input输入框为空时遇到的问题 弹窗后,光标没有定位到输入框,而是直接执行我的处理页面程序...
查看>>
BDI和CDI理论四个象限的概念特点及其运用
查看>>
Use XSLT in wix
查看>>
[转] Kmeans与Meanshift、EM算法的关系
查看>>
CVE-2010-2883Adobe Reader和Acrobat CoolType.dll栈缓冲区溢出漏洞分析
查看>>
学习笔记——矩阵(1) 02.15
查看>>
cross compile ZThread for ios && android
查看>>
lucene 类介绍
查看>>
phpstudy手动把mysql数据库从5.5.56升级到5.6.41
查看>>