nkoj 2023
来源:互联网 发布:一建做题的软件 编辑:程序博客网 时间:2024/04/25 13:52
就是分割输入的内容,然后分辨到底申请了多少内存空间,虽然是水题没什么算法,但是对于输入的处理和编写代码的能力提升有一定的作用
我发现自己现在写的代码占有内存都是比较多的,因为我一开始接触到题目,思考如何去解决的时候总是在想一些如何在结构上面做文章,所以
虽然思路会因此变得简单得多,但是申请的内存不是太少,速度有待提高,总之,慢慢学会优化,慢慢才能写出高质量的代码啊
@--@ 加油!
#include<iostream>#include<string>#include<cmath>using namespace std;#define max_n 301int n;typedef struct{string type;int size;}type;type m[max_n]={{"int",4},{"float",4},{"bool",1},{"char",1},{"double",8}};int getsize(string type){ for(int i=0;i<5;i++){if(m[i].type==type)return m[i].size;}return 0;}int toint(string num){int ans=0;int l=num.size()-1;num=num.substr(1,l);l=num.size()-1;for(int i=0;i<num.size();i++)ans+=(num[i]-'0')*pow(10,l-i);return ans;}int main(){while(cin>>n){int memory=0;//solve the n input casestring intype;for(int i=0;i<n;i++){int havearray=0;//first input the type of ask memorycin>>intype;//then find the type's size is m[intype]string arraysize="";bool ok=false;while(true){//then input the polychar ch;cin>>ch;if(ch==';'){memory+=getsize(intype);break;}if(ch==','){memory+=getsize(intype);}if(ch==' ') continue;if(ch=='[') ok=true;if(ch==']'){ok=false;memory+=toint(arraysize)*getsize(intype);arraysize="";havearray++; } if(ok){arraysize+=ch;}}//一个将字符串转换为数字的函数在这里需要if(havearray){memory-=getsize(intype)*havearray;}}cout<<memory<<endl;}return 0;}
0 0
- nkoj 2023
- nkoj 2234
- nkoj 2224
- nkoj 1887
- nkoj 2160
- NKOJ 1236 a^b
- nkoj 1504: Prime Path
- NKOJ题目分类
- NKOJ 1137 石子合并
- nkoj 1742(Astar2007)
- poj1011 | NKOJ 1423 木棍
- 【水题】NKOJ 3484 旅行
- NKOJ-2112 糖果
- NKOJ-4052 糖果盒
- NKOJ-3698 方块消除
- NKOJ-3748 玩具取名
- NKOJ-3704 解方程
- NKOJ-1517 选路
- 机器学习 从矩阵和概率的角度解释最小均方误差函数
- 南邮NOJ 1014 数据的插入与删除
- bilateral filter using opencv
- 毕业设计:node+express+ejs+mysql学习之路
- JAVA常用类的使用方法_Character类
- nkoj 2023
- 数据结构与算法面试题80道
- 内存管理
- 少走弯路,学好C语言的推荐途径
- 冒泡排序
- PHP5各个版本的新功能和新特性总结
- CCF模拟题——有趣的数详解
- poj 3087 模拟
- android平台tts中文语音合成核心代码及设置流程