PAT1060【大模拟啊】
怎么麻烦怎么来了???
提供几个案例:
5 0.00001 0.00001
0 0.0 0.0222
1 0.001 0.2000
2 005.06 0.230
1 00.020 0
贴份代码跑。。
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int n,m;
string s1,s2;
string a,b;
int main()
{
int as,bs;
cin>>n>>s1>>s2;
as = s1.length();
bs = s2.length();
if(n==0)
{
puts("YES 0.*10^0");
return 0;
}
m = n; a = "0.";
b = "0.";
int num1_1 = 0,num1_2=0;
bool flag = false;
int i = 0;
while(s1[i]=='0')
{
i++;
n++;
}
bool flat = false;
for(;i < n && i < as;i++)
{
if(s1[i] >= '0'&& s1[i] <= '9')
{
if(flag)
{
if(!num1_1&&!flat&&s1[i]=='0')
{
n++;
num1_2++;
}
else
{
flat = true;
a.push_back(s1[i]);
}
}
else
{
a.push_back(s1[i]);
num1_1++;
}
}
else
{
flag = true;
n++;
}
}
if(!flat) num1_2 = 0;
else num1_2 = -num1_2; if(!flag)
{
while(i < as)
{
if(s1[i] >= '0' && s1[i] <= '9')
num1_1++;
else break;
i++;
}
}
//printf("%d %d\n",i,n);
while(i<n)
{
a.push_back('0');
i++;
} flag = false;
int num2_1 = 0,num2_2=0;
swap(n,m);
i = 0;
while(s2[i]=='0')
{
n++;
i++;
}
flat = false;
for(;i < n && i < bs;i++)
{
if(s2[i] >= '0' && s2[i] <= '9')
{
if(flag)
{
if(!num2_1&&!flat&&s2[i]=='0')
{
num2_2++;
n++;
}
else
{
flat = true;
b.push_back(s2[i]);
}
}
else
{
b.push_back(s2[i]);
num2_1++;
}
}
else
{
flag = true;
n++;
}
}
if(!flat) num2_2 = 0;
else num2_2 = - num2_2; if(!flag)
{
while(i < bs)
{
if(s2[i] >= '0' && s2[i] <= '9')
num2_1++;
else break;
i++;
}
} while(i < n)
{
b.push_back('0');
i++;
} if(a == b && ((num1_1 && num1_1 == num2_1)||(!num1_1 && num1_2 == num2_2)))
{
cout<<"YES "<<a;
if(num1_1)
cout<<"*10^"<<num1_1<<endl;
else
cout<<"*10^"<<num1_2<<endl;
}
else
{
cout<<"NO ";
cout<<a;
if(num1_1)
cout<<"*10^"<<num1_1;
else
cout<<"*10^"<<num1_2;
cout<<" ";
cout<<b;
if(num2_1)
cout<<"*10^"<<num2_1;
else
cout<<"*10^"<<num2_2;
} }
PAT1060【大模拟啊】的更多相关文章
- HDU 5920 Ugly Problem 高精度减法大模拟 ---2016CCPC长春区域现场赛
题目链接 题意:给定一个很大的数,把他们分为数个回文数的和,分的个数不超过50个,输出个数并输出每个数,special judge. 题解:现场赛的时候很快想出来了思路,把这个数从中间分为两部分,当位 ...
- AC日记——神奇的幻方 洛谷 P2615(大模拟)
题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...
- ACdream 1188 Read Phone Number (字符串大模拟)
Read Phone Number Time Limit:1000MS Memory Limit:64000KB 64bit IO Format:%lld & %llu Sub ...
- 2016ACM-ICPC网络赛北京赛区 1001 (trie树牌大模拟)
[题目传送门] 1383 : The Book List 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 The history of Peking University ...
- Bzoj1972: [Sdoi2010]猪国杀 题解(大模拟+耐心+细心)
猪国杀 - 可读版本 https://mubu.com/doc/2707815814591da4 题目可真长,读题都要一个小时. 这道题很多人都说不可做,耗时间,代码量大,于是,本着不做死就不会死的精 ...
- (大模拟紫题) Luogu P1953 易语言
原题链接:P1953 易语言 (我最近怎么总在做大模拟大搜索题) 分别处理两种情况. 如果只有一个1或0 直接设一个cnt为这个值,每次输入一个新名字之后把数字替换成cnt,最后cnt++即可. 注意 ...
- NOIP2017 时间复杂度 大模拟
再写一道大模拟题. 由于是限时写的,相当于考场代码,乱的一批. 题目链接:P3952 时间复杂度 先记几个教训: 字符串形式的数字比较大小老老实实写函数,字典序都搞错几次了 栈空的时候不但pop()会 ...
- [CSP-S模拟测试]:引子(大模拟)
题目描述 网上冲浪时,$Slavko$被冲到了水箱里,水箱由上而下竖直平面.示意图如下: 数字$i$所在的矩形代表一个编号为$i$的水箱.1号水箱为水箱中枢,有水管连出.除了$1$号水箱外,其他水箱上 ...
- 模拟赛38 B. T形覆盖 大模拟
题目描述 如果玩过俄罗斯方块,应该见过如下图形: 我们称它为一个 \(T\) 形四格拼板 .其中心被标记为\(×\). 小苗画了一个 \(m\) 行 \(n\) 列的长方形网格.行从 \(0\) 至 ...
- Codeforces 730L - Expression Queries(大模拟)
Codeforces 题面传送门 & 洛谷题面传送门 大模拟(?)+阿巴细节题,模拟赛时刚了 3h 最后因为某个细节写挂 100->40/ll/ll(下次一定不能再挂分了啊 awa) 首 ...
随机推荐
- 简单封装的Log4net
1. [代码]使用 log = new Logger(this.GetType());log.Info("Hello world.");2. [代码]第二个版本,修复了Co ...
- hdu 2044 一只小蜜蜂...(简单dp)
一只小蜜蜂... Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- 了解fiddler:实现简单的抓包测试
fiddler是一款轻型的抓包软件 本文介绍几个常用的功能:(相信图片更直观点,上图片,右键在新标签页中打开,查看高清大图) 通过composer,我们可以修改http头部信息,修改post(),ge ...
- 关于MFC的DLL调用方法问题
参考资料: 一.dll导出方式: MFC的DLL函数导出方法有两种:一种是通过模块定义文件DEF文件:另一种是在导出函数前加_declspec(dllexport). 1.def文件方法: 只需要在E ...
- stl_set.h
stl_set.h // Filename: stl_set.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http://blo ...
- Web实现音频、视频通信
Google开源实时通信项目WebRTC Google正式开源了WebRTC实时通信项目,希望浏览器厂商能够将该技术内建在浏览器中,从而使Web应用开发人员能够通过HTML标签和JavaScript ...
- ONTAK2010 Peaks加强版
给一个图,每个点有点权,$q$ 次询问从 $x$ 开始只走点权小于等于 $y$ 的路径能到的点中第 $k$ 大的点权,无解输出 -1 强制在线 请注意因为这个 sb 博主为了描述方便,这里的题目描述用 ...
- SPOJ Query on a tree III (树剖(dfs序)+主席树 || Splay等平衡树)(询问点)
You are given a node-labeled rooted tree with n nodes. Define the query (x, k): Find the node whose ...
- 51Nod1766 树上的最远点对
1766 树上的最远点对 n个点被n-1条边连接成了一颗树,给出a~b和c~d两个区间,表示点的标号请你求出两个区间内各选一点之间的最大距离,即你需要求出max{dis(i,j) |a<=i&l ...
- 【LeetCode】010. Regular Expression Matching
Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...