CodeForces 697B Barnicle 模拟

强行模拟 纪念一下……

 1 #include<stdio.h>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<math.h>
 5 #include<string.h>
 6 #include<string>
 7 #include<map>
 8 #include<vector>
 9 #include<queue>
10 #define M(a,b) memset(a,b,sizeof(a))
11 using namespace std;
12 char str[505];
13 char strr[505];
14 queue<int>take;
15 int main(){
16     while(~scanf("%s",str)){
17         M(strr,NULL);
18         int len=strlen(str);
19         int i=0,j;
20         while(true){
21             if(str[i]==‘e‘) break;
22             else strr[i]=str[i];
23             if(str[i]==‘.‘) j=i;
24             i++;
25         }
26 //        printf("%s\n",strr);
27         int pow_=len-1-i;
28         int ll=str[i+1]-‘0‘;
29         for(int k=2;str[i+k];k++){
30             ll*=10;
31             ll+=str[i+k]-‘0‘;
32         }
33 //        printf("ll==%d\n",ll);
34         while((strr[j+1]>=‘0‘&&strr[j+1]<=‘9‘)&&ll){
35             swap(strr[j],strr[j+1]);
36             j++,ll--;
37         }
38 //        printf("ll==%d\n",ll);
39         int from=0;
40         while(true){
41             if(strr[from]==‘0‘) from++;
42             else break;
43         }
44 //        printf("from==%d\n",from);
45         if(strr[j-1]==‘0‘) from--;
46         if(from<0) from=0;
47         int lenn=strlen(strr);
48 //        printf("%d %c %c\n",lenn,strr[lenn-1],strr[lenn-2]);
49         if(strr[lenn-1]==‘0‘ && strr[lenn-2]==‘.‘){
50             for(int q=0;q<lenn-2;q++)
51                 printf("%c",strr[q]);
52             puts("");
53             continue;
54         }
55         if(j==i-1&&ll==0){
56 //            printf("222223\n");
57             for(int q=from;q<i-1;q++)
58                 printf("%c",strr[q]);
59             puts("");
60         }
61         else if(ll!=0){
62 //            printf("1111111\n");
63             for(int q=0;strr[q];q++){
64                 if(strr[q]==‘.‘) break;
65                 else printf("%c",strr[q]);
66             }
67             while(ll){
68                 printf("0");
69                 ll--;
70             }
71             puts("");
72         }
73         else{
74 //            printf("22222\n");
75             for(int q=from;q<i;q++)
76                 printf("%c",strr[q]);
77             puts("");
78         }
79     }
80     return 0;
81 }
时间: 2024-10-10 05:11:50

CodeForces 697B Barnicle 模拟的相关文章

【CodeForces 697B】Barnicle

对科学计数法表示的数,输出其10进制的形式. c++来做,需要考虑这些细节: 当b==0,d==0时,只输出a. 当不需要补零的情况有两种: 一种是刚好是整数,只输出a(注意1.0e1的情况是输出1):另一种是还要输出剩下的小数部分. #include<cstdio> #include<algorithm> #define N 200005 using namespace std; int a,b,dl,dr; char s[N]; int main(){ scanf("

codeforces 591B Rebranding (模拟)

Rebranding Problem Description The name of one small but proud corporation consists of n lowercase English letters. The Corporation has decided to try rebranding - an active marketing strategy, that includes a set of measures to change either the bra

Codeforces 389B(十字模拟)

Fox and Cross Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit Status Description Fox Ciel has a board with n rows and n columns. So, the board consists of n × n cells. Each cell contains either a symbol '.', or a s

CodeForces - 344A Magnets (模拟题)

CodeForces - 344A Magnets Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit Status Description Mad scientist Mike entertains himself by arranging rows of dominoes. He doesn't need dominoes, though: he uses rectangula

CodeForces 670E(模拟双向链表)

题意:给你一串合法的括号和当前光标的位置和一些操作,问操作完之后的串是怎么样的 思路:模拟一个双向链表的操作,首先先预处理出配对的括号组,然后模拟即可 #include<bits\stdc++.h> using namespace std; const int maxn = 1e6; struct Node { int l,r; }nodes[maxn]; char s1[maxn],s2[maxn]; int a[maxn],d[maxn]; int main() { int n,m,pos

CodeForces 709B Checkpoints 模拟

题目大意:给出n个点的坐标,和你当前的坐标,求走过n-1个点的最短路程. 题目思路:走过n-1个点,为了使路程更短,那么不走的点只可能第一个点或最后一个点.模拟就行了,比较恶心. 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #include<vector> 5 #include<stdio.h> 6 #include<stdlib.h> 7 #inc

Berland National Library codeforces 567B(模拟)

http://codeforces.com/problemset/problem/567/B 题意:图书馆有一个程序,可以记录学生的进出情况,'+'表示进入,'-'表示出去,字符后面的数字表示学生的编号.在这个程序尚未启动前,还有一些同学进的消息没有被记录下来.现在问你这个图书馆至少得容纳多少学生. 分析:用sum和ans两个值来记录,sum存当前房间人数,ans维护最大值. #include <iostream> #include <stdio.h> #include <s

CodeForces 825B(模拟&amp;贪心_D题)解题报告

题目链接:http://codeforces.com/problemset/problem/825/B -------------------------------------------------------------------------------- 题意:五子棋,在输入条件下,能否在当前局面获胜. 思路:很明显的是,当我们下五子棋时,我们每步都是进行一次搜索,观察能否连接成为5个.同理,利用计算机也可以向各个方向进行搜索.好在本题只是10X10的棋面,直接对每个点进行4个方向(水

Codeforces 190C(模拟)

坑点 不记它难解我心头之恨-- WA1:不要读错题Orz,顺序是按它给定的.那就是个类似栈的东西,重点在于输出. 然而我输出很快就模拟对了-- WA2:数据:1 int.我日了不看数据我真的去de模拟的bug了. WA3:中间栈空是非法. 貌似建一棵树可以迅速搞掉--擦 #include <cstdio> #include <cstring> #include <iostream> #include <string> #include <vector&