
桂电信科 2020 程序设计大赛 题解
发布日期:2021-05-07 16:48:51
浏览次数:19
分类:精选文章
本文共 3416 字,大约阅读时间需要 11 分钟。
A
相当于hello world,就是多了一个a控制一下个数//A#includeusing namespace std;int main(){ int t; cin>>t; while(t--){ int a; cin>>a; for(int i=0;i
B
排序 这数据量冒泡排序也能过//B#includeusing namespace std;int main(){ int a[20005]; int n; cin>>n; for(int i=0;i >a[i]; } sort(a,a+n); for(int i=0;i
C
回文数,因为只有四位,用四个变量存该四位数的个、十、百、千位即可,然后遍历一遍1001~9999//C#includeusing namespace std;int main(){ int a,b,c,d; for(int i=1001;i<=9999;i++){ a=i%10;//个位 b=(i%100)/10;//十位 c=(i%1000)/100;//百位 d=(i%10000)/1000;//千位 if(a==d&&b==c) cout< <
D
01字串,输出128以内的二进制,可以直接开数组写二进制模拟,逢二进一。我就直接写了一个十转二的函数,偷懒了。//D#includeusing namespace std;void stob(int num){ int n=num; int k=0; int a[7]; while(num>1){ a[k++]=num%2; num/=2; } a[k]=num; for(int i=6;i>k;i--){ cout<<0; } for(int i=k;i>=0;i--){ cout<
E
小写转大写 第一个字母直接转,后面的看空格,空格后的第一个字母转大写。 输入要用getline(),一行字符串输入,可以包含空格。 然后正常写一直有点小错,就把输入放进while()里去了,这种oj判定能过,编译器就卡了//E#includeusing namespace std;int main(){ int t; cin>>t; string s; while(getline(cin,s)){ s[0]-=32; for(int i=1;i
F
思维题#includeusing namespace std;int a[21][21];int main(){ int t; cin>>t; while(t--){ int n,k; cin>>n; memset(a,0,sizeof(a)); vector ve; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>k; if(k==1&&a[j][i]==0&&i!=j) a[i][j]=1; if(k==1&&a[j][i]==1&&i!=j) ve.push_back(i),ve.push_back(j); } } sort(ve.begin(),ve.end()); for(int i=0;i
G
这是蓝桥杯里摘的题 思路一下就能看出来用递归,耐心点把An和Sn找到,就出来了。//G#includeusing namespace std;void An(int n){ for(int i=1;i<=n;i++){ cout<<"sin("< >t; while(t--){ int n; cin>>n; Sn(n); cout<
H
这题说是最短路,边权有负,没有负环,数据范围也不大,用floyd就出了,可是测试样例一直没过,可能是自己对算法还没有足够理解。#includeusing namespace std;#define INF 0x3f3f3f3f#define M 1305int maps[M][M];int n,m;int u,v,l;void floyd(){ for(int k=1;k<=n;k++){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(maps[i][j]>maps[i][k]+maps[k][j]){ maps[i][j]=maps[i][k]+maps[k][j]; } } } }}int main(){ int t; cin>>t; while(t--){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ maps[i][j]=INF; } maps[i][i]=0; } for(int i=0;i >u>>v>>l; maps[u][v]=maps[v][u]=l; } floyd(); for(int i=2;i<=n;i++){ cout< <
H*
出题人打错符号了,还是一个H,就叫它H*吧。 蓝桥杯小题——完美的代价。//Hh 回文#includeusing namespace std;void solve(){ string s; int n,j,cnt=0,flag=0,index; cin>>n>>s; int last=n-1; for(int i=0;i i;j--){ if(s[i]==s[j]){ for(int u=j;u >t; while(t--){ solve(); } return 0;}
I
本场出了A最简单的题目,就第一行一个数,第二行两个数,第三行三个数… 自己定两个变量,一个控制行数,一个一直++。//I#includeusing namespace std;int main(){ int t; cin>>t; while(t--){ int m; cin>>m; int k=1; int p=1; for(int i=1;i<=m;i++){ for(int j=1;j<=p;j++){ cout<
J
找到区间直接排序取最大。 开了两个数组,一个初始,一个过渡。//J#includeusing namespace std;int main(){ int t; cin>>t; while(t--){ int n; int a[1005]; memset(a,0,sizeof(a)); cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } int m; int b[1005]; memset(b,0,sizeof(b)); cin>>m; while(m--){ int l,r,K; cin>>l>>r>>K; for(int i=0,j=l;j<=r;j++,i++){ b[i]=a[j]; } sort(b,b+r-l+1); cout< <
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月06日 04时39分57秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于单片机简易信号误差分析设计-全套资料
2021-05-08
基于单片机简易脉搏测量仪系统设计-毕设课设资料
2021-05-08
Javascript中String支持使用正则表达式的四种方法
2021-05-08
eclipse引用sun.misc开头的类
2021-05-08
Servlet2.5的增删改查功能分析与实现------删除功能(四)
2021-05-08
spring启动错误:Could not resolve placeholder
2021-05-08
查询某表格上次进行vacuum的时间
2021-05-08
invalid byte sequence for encoding
2021-05-08
redis向数组中添加值并查看数组长度
2021-05-08
JS编写一个函数,计算三个不同数字的大小,按从小到大顺序打印(穷举法)
2021-05-08
技术美术面试问题整理
2021-05-08
C++学习记录 五、C++提高编程(2)
2021-05-08
ORB-SLAM2:LoopClosing线程学习随笔【李哈哈:看看总有收获篇】
2021-05-08
js求阶乘
2021-05-08
简单的xml读取存储方法(未优化)
2021-05-08
Nginx---惊群
2021-05-08
项目中常用的审计类型概述
2021-05-08
(九)实现页面底部购物车的样式
2021-05-08