ccpc总结
比赛心得:我们小队总共就做了3个题,1010因为多加了一个break;然后一直多输出一个数,卡了很久,浪费了不少时间。1007一开始一直读不懂题,给的那些式子也不知道有什么用,然后根据通过率那么高,和输入与输出分析出这一个字符串中最多的字母有多少个,不过在试的时候还是卡了会,一开始就想到用stl的map的使用利用map<char,int>mp;把每一个字符存进去,然后输出最后的(*it).second,然后以为这样就行的时候,又没注意到迭代器最后一个的second不一定是最大的,而是根据first排序的,就开始换成普通的方法做,最后2种方法都做了,不过浪费了队友好多时间,队友把这题交给了我却卡了半天。1003是队友做出来的。还看了1002,队友说是最小生成树,这个算法一直想着学,然后一直没有去,这题就卡在最后一个点没出来,数据太大了。1011跟着另外一个队员在看,然后我也看了下题目,看不懂就没做了。其他题没怎么认真看。。。
总结:1,最近练题太少了,STL模板都忘记了好多,以前靠STL做出了好多题,现在能想起来方法却有时候会卡顿下,浪费了时间,应该继续保持STL的学习。
2,cf题还是一直只做div3的 1,2题,一直没有提升,应该要尝试做div 2的题,做到3题。
3,还是要好好练 组队赛发现都一直只能ac在2-3题,跟队友配合的也不好了,不太清楚他们熟悉那些类型的题,应该好好的跟队友讨论下。
4,之前在洛古学过的好多算法都忘记光了,应该重新复习,并学习新算法。
1001就是看相邻的数字会不会相等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta #include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while (t--){ int n; cin>>n; int flag=1; int ans; int a[10001]; memset(a,0, sizeof (0)); for ( int i=0;i<n;i++){ cin>>a[i]; if (i==0){ ans=a[i]; } if (ans==a[i]&&i>0){ flag=0; } else { ans=a[i]; } } if (flag==1){ cout<< "YES" <<endl; } else { cout<< "NO" <<endl; } } return 0; } |
1007就是找出最多字母
//第一种用stl 先存map然后再vector排序 第二种就是普通方法 #include<bits/stdc++.h> #include<map> #include<vector> using namespace std; bool cmp(int p,int q){ return p>q; } int main(){ int t; int g=1; cin>>t; while(t--){ map<char,int>mp; map<char,int>::iterator it; vector<int>v; string p; cin>>p; for(int i=0;i<p.size();i++){ mp[p[i]]++; } for(it=mp.begin();it!=mp.end();it++){ v.push_back((*it).second); } sort(v.begin(),v.end(),cmp); cout<<"Case #"<<g<<": "<<v[0]<<endl; g++; } } /* #include<bits/stdc++.h> #define ll long long using namespace std; int t; int main() { ios::sync_with_stdio(false); cin >> t; for(int k = 1; k <= t; k++) { string s; cin >> s; int a[100001] = {0}; for(int i = 0; i < s.size(); i++) { a[(int)s[i]]++; } int mx = 0; for(int i = 96; i <= 96 + 26; i++) { mx = max(mx, a[i]); } cout << "Case #" << k << ": " << mx << endl; } return 0; } */
1003主要取小于k的值,如果没有的话就把abs(a[i] - k) * 2的值累加起来。
#include<bits/stdc++.h> using namespace std; #define ll long long ll a[1000000+8]; int main() { int t,i,j,m; ll n,k; cin>>t; while(t--) { ll dis=0; scanf("%lld%d%lld",&n,&m,&k); for(i=0;i<m;i++) { scanf("%lld",&a[i]); } sort(a,a+m); dis=k-1; for(i=m-1;i>=1;i--) { if(a[i]>k) { dis+=a[i]-k; dis+=a[i]-k; } else { dis+=k-a[i]; dis+=k-a[i]; } } if(a[0]<k) { dis+=k-1; } else { dis+=a[0]-k; dis+=a[0]-1; } printf("%lld\n",dis); } return 0; }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法