How Much Memory Your Code Is Using? Gym - 101955J
生活随笔
收集整理的這篇文章主要介紹了
How Much Memory Your Code Is Using? Gym - 101955J
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
How Much Memory Your Code Is Using? Gym - 101955J
題意:
t組數據,每組數據會有n個定義類型的方式,給你每個類型所占字節,問一共占了多少字節,最終答案按照Kibibyte單位輸出,并向上取整
題解:
直接模擬就行,記得判斷定義數組的情況,模擬題,全場最好做的題
代碼:
#include <bits/stdc++.h> using namespace std; int k; int n; int cnt=0; int main() {scanf("%d",&k);while(k--){long long ans=0;scanf("%d\n",&n);string a;while(n--){getline(cin,a);if(strstr(a.data(),"[")&&strstr(a.data(),"]")){int bas=0;if(strstr(a.data(),"long long ")){bas=8;}else if(strstr(a.data(),"long double ")){bas=16;}else if(strstr(a.data(),"bool ")){bas=1;}else if(strstr(a.data(),"char ")){bas=1;}else if(strstr(a.data(),"__int128 ")){bas=16;}else if(strstr(a.data(),"int ")){bas=4;}else if(strstr(a.data(),"double ")){bas=8;}else if(strstr(a.data(),"float ")){bas=4;}string kk;int f=0;for(auto i:a){if(i==']'){f=0;}if(f==1){kk.push_back(i);}if(i=='['){f=1;}}int pp=atoi(kk.data());ans=ans+(long long)pp*bas;}else{if(strstr(a.data(),"long long ")){ans+=8;}else if(strstr(a.data(),"long double ")){ans+=16;}else if(strstr(a.data(),"bool ")){ans+=1;}else if(strstr(a.data(),"char ")){ans+=1;}else if(strstr(a.data(),"__int128 ")){ans+=16;}else if(strstr(a.data(),"int ")){ans+=4;}else if(strstr(a.data(),"double ")){ans+=8;}else if(strstr(a.data(),"float ")){ans+=4;}}}printf("Case #%d: ",++cnt);if(ans%1024==0){printf("%d\n",ans/1024);}else{ans=ans/1024;ans++;printf("%d\n",ans);}}return 0; }總結
以上是生活随笔為你收集整理的How Much Memory Your Code Is Using? Gym - 101955J的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3D建模软件功能解析之Maya篇
- 下一篇: C - Insertion Sort G