![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
zinc@
分享自己写的垃圾ing
展开
-
c/c++简单教务系统的实现--学生/教师/管理员三方登录
程序介绍:整体实现:本程序为c++编写的教务管理系统的简单实现,全部以命令行的方式呈现,总体思想采用面向过程的思想,将程序的各个功能划分为多个函数实现,其中数据采用文件读写的方法储存在同目录下的s.txt和t.txt中,前者储存学生数据,后者储存教师数据(目的是可实现数据的储存以及多次使用),运行程序后会先读取两个目录中的数据形成“数据库”,选择对应登录方式时会遍历“数据库”中的数据进而实现简单登录判断(学生和教师)。权限划分:管理员拥有最高权限,可增删改查教师/学生的信息。教师其次,仅拥有添加学生信原创 2021-06-29 15:38:29 · 4658 阅读 · 17 评论 -
L2-027 名人堂与代金券 (25 分)
整体来说就是结构体的sort 最后主义的就是排名的问题,我自己写的老只能过一个测试点,然后看了看dalaode,就是用数组储存rank,也是一个很新奇的想法,我的想法就是两个变量实现#include <bits/stdc++.h>using namespace std;struct node { string a; int b;}ss[10005];bool cmp(node a,node b){ if(a.b!=b.b)return a.b>b.b; else r..原创 2021-03-17 10:59:24 · 176 阅读 · 0 评论 -
L2-026 小字辈 (25 分)
个人觉得,bsf更像是dfs的改进版,嗯,也许是我理解的太浅显了。对于这个题,首先想的是递归,然后发现没有结束条件,emm,然后明白了 是这种情况还要记录步骤的话 最好的办法就是bfs了 广度优先搜,所有的方向都去,然后记录,然后再深入。代码如下(liuchuo大佬的)#include <bits/stdc++.h>using namespace std;struct node { int id,level; //结构体用来储存下标(id)和level(辈分)};int ma原创 2021-03-16 21:53:52 · 182 阅读 · 0 评论 -
2021-03-05
今日发现的c++“函数”(姑且称为函数吧,具体来说应该是对象吧)max_element和min_element 顾名思义 就是给定数组里的最大和最小值,返回的是地址,意味着可以得到位置/值,举个栗子#include <bits/stdc++.h>using namespace std;int main(){ int n[]={1,2,5,3,48,5}; //这里我直接初始化作为栗子,当然实际问题中输入多点 cout<<"最大值为:"<<*max_ele原创 2021-03-05 10:30:31 · 136 阅读 · 1 评论 -
L2-020 功夫传人 (25 分)
思路很明显,但是代码实现的话有点困难,对我来说,这是参考柳大佬的代码,dfs部分一开始我想的是用递归实现 后来才明白 原来这个要dfs实现,虽然是暴力解法但是很nice#include <bits/stdc++.h>using namespace std;vector<vector<int>> a; //建立二维动态数组int n,x,y;double z,r,sum=0;bool visit[100005];void dfs(int index,dou.原创 2021-03-05 10:19:26 · 141 阅读 · 1 评论 -
L2-019 悄悄关注 (25 分)
题意很清楚,显然要用map连接string 和 int 那么问题就是在于最后的判断,也就是筛选环节,大于平均数好解决,那么没出现过该如何判断呢,嗯。一个直接的想法就是每次都遍历一遍关注列表,查询是否有该人,嗯,这样的话可以直接用find()就行了,但是遗憾的是最后一组数据会超时。所以再想想的话可以直接用两个map,另一组map直接再对关注列表进行标记,最后筛选时如果没有标记且大于平均数,就可以输出map的key#include <bits/stdc++.h>using namespa..原创 2021-03-04 11:20:38 · 190 阅读 · 2 评论 -
L2-015 互评成绩 (25 分)
一道很水的25分题(当然我不配说这话,菜鸡太菜了,小毛病太多了)#include <bits/stdc++.h>using namespace std; vector<double > a; //这里用动态数组,为了熟悉一下用法,嘻嘻int main(){ int n,k,m,x; double sum=0; cin>>n>>k>>m; for(int i=1;i<=n;i++){ sum.原创 2021-03-02 17:35:21 · 183 阅读 · 0 评论 -
L2-009 抢红包 (25 分)
感觉应该是个正常的模拟题,注意下细节就好了吧gogogo,再有就是sort快排和结构体的运用吧,不多说 看代码 #include <bits/stdc++.h> using namespace std; struct node{ int x=0,z=0; double y=0; }a[10005]; bool cmp(node a,node b){ if(a.y!=b.y) return a.y>b.y; else { if(a.z!=b.z)retu..原创 2021-02-24 10:17:21 · 123 阅读 · 0 评论 -
L2-008 最长对称子串 (25 分)-Manacher 算法后续
一个算法,Manacher 算法,中文里是“马拉车算法”专门针对回文字符串的算法,好处是时间复杂度是o(n)而且处理后只需要处理奇数的回文串的情况,具体的百度吧,我把模板贴出来,感兴趣的访问下面网站,讲的蛮好的https://ethsonliu.com/2018/04/manacher.html然后我自己写了一个,容易理解的,相当于没有算法了,但是,我觉得 ,当然仅仅我觉得,复杂度还是o(n),当然有很多地方优缺点,具体情况具体用着吧,感觉这个还不错,先记住#include <bits/std原创 2021-02-23 21:48:33 · 83 阅读 · 0 评论 -
L2-008 最长对称子串 (25 分)
哇哇哇,看到字符串的问题就兴奋,虽然没有什么算法,但是就是思维的一种启迪呀,当然我也是被启迪的弟弟,总体的思路就是分两种回文字符串,一种是奇数-中间有一个字符,另一种是偶数-两两对应的。所以 枚举 吧,第一个循环是从第一个字符到最后一个开始遍历-以每一个为起点,奇数的话就看之前和之后,偶数就是永远把这个当左边的,当然右边的也应该是一样的,不符合情况就跳出循环,符合就+=2#include <bits/stdc++.h>using namespace std;int main(){ s.原创 2021-02-23 14:20:00 · 73 阅读 · 0 评论 -
L2-001 紧急救援 (25 分)
首先,身为弱鸡的我肯定是不太会的,我以为用bfs或者dfs,然后就。。。所以我就。。。瞄了好长时间答案。然后是大佬写的,大佬没给注释,我就帮着注释一下吧。然而看代码之前,需要了解 《迪克斯特拉算法》,自己百度吧,我就不搬运了#include <bits/stdc++.h> //万能头文件,屡试不爽 using namespace std;int n, m, c1, c2;int dis[510], weight[510], e[510][510], num[510], w[510.原创 2021-02-22 13:05:30 · 147 阅读 · 0 评论 -
L2-003 月饼 (25 分)
感人的贪心,感人的月饼,第一个25自己做的25分题,哎,菜哭了#include <bits/stdc++.h>using namespace std;struct node { double x,y,z;}ss[1000];bool cmp(node a,node b){ return a.z>b.z;}int main(){ int n,m; double sum=0; cin>>n>>m; for(int i=0;i<n;i+原创 2021-02-15 21:28:38 · 140 阅读 · 0 评论 -
L1-071 前世档案 (20 分)
#include <bits/stdc++.h>using namespace std;int main(){ int n,m,sum=0; string c; cin>>n>>m; while(m--){sum=1; cin>>c; for(int i=0;i<n;i++){ if(c[i]!='y')sum+=pow(2,n-1-i); } cout<<sum<<endl; } ret..原创 2021-02-04 15:16:24 · 407 阅读 · 0 评论 -
水题有感
c++string流之istringstream给你一行字符串,就是一堆话,然后让你分别输出怎么办比如"i am a boy ,you are a girl",啊这,直接怼太莽撞了吧,不如用istringstream吧包含在 sstream 头文件里,当然万能头文件也有啦然后就是怎么用,贴上代码吧#include <bits/stdc++.h>using namespace std;int main(){ string a,b; getline(cin,a);原创 2021-02-03 17:27:14 · 59 阅读 · 0 评论 -
L1-050 倒数第N个字符串 (15分)
#include<iostream>using namespace std;int main(){ char c[7]; int a,b,d; cin>>a>>b; b--; d=a; while(a--){ c[a]='z'-b%26; b/=26; } for(int i=0;i<d;i++)cout<<c[i]; return 0; } 类比十进制的做法,注意的是b要先减一...原创 2021-02-02 11:13:50 · 83 阅读 · 0 评论 -
快读二三事--一个大坑
今日在做cv工程师的时候,发现了,自己把一个bfs打一遍,按照自己的想法又改了改,突然就挂了,原因是我想加入一个快读,快读呢又是自己写的,写的时候又想起来了之前字符转int可以-48同时又可以用位操作&,让字符&15就相当于-48(-‘0’)然后就出错了int read(){ int a=0;char x=getchar();int f=1; while(x>'9'||x<'0'){ if(x=='-') f=-1;x=getchar(); } while(x<原创 2021-01-31 13:31:21 · 134 阅读 · 0 评论 -
高精乘法--防丢代码
#include <bits/stdc++.h>using namespace std;char a1[10001],b1[10001];int a[10001],b[10001],i,x,len,j,c[10001];int main (){ cin>>a1>>b1; int lena=strlen(a1); int lenb=strlen(b1); for(i=1;i<=lena;i++)a[i]=a1[lena-i]&原创 2021-01-30 15:16:02 · 104 阅读 · 0 评论 -
高精度加法--防丢代码
#include <bits/stdc++.h>using namespace std;vector<int> add(vector<int>&A,vector<int>&B){ vector<int>C; int t=0; for(int i=0;i<A.size()||i<B.size();i++){ if(i<A.size()) t+=A[i]; if(i<B.size()) t+=B原创 2021-01-30 15:15:12 · 122 阅读 · 0 评论 -
留给自己的快读模板-优化小技巧
啊,好像,貌似,似乎cin速度不及scanf不及快读,所以,快读学习一下int read(){ int a=0;char x=getchar();int f=1; while(x>'9'||x<'0'){ if(x=='-') f=-1;x=getchar(); } while(x<='9'&&x>='0'){a=a*10+x-48; x=getchar(); } return a*f; } 写法很多种,大致就这个样子...原创 2021-01-25 14:38:36 · 75 阅读 · 0 评论 -
P1803 凌乱的yyy / 线段覆盖
再一次感动我妈一整年,关于两个数据联系起来排序的感想emm题目背景快 noip 了,yyy 很紧张!题目描述现在各大 oj 上有 nn 个比赛,每个比赛的开始、结束的时间点是知道的。yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。所以,他想知道他最多能参加几个比赛。由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加 22 个及以上的比赛。输入格式第一行是一个整数 nn ,接下来 nn 行每行是 22 个整数 a_{i},b_{i}ai ,bi原创 2021-01-22 17:03:38 · 65 阅读 · 0 评论 -
P1094 [NOIP2007 普及组] 纪念品分组
感动我妈一整年,这几天进行贪心专题,小白却不“白”的我刷到一个类似此题的题然后脑抽过不来,逻辑有问题(分析还是没有耐心做题),今早又刷纪念组发现是同类型题,于是又想了想,终于过了!!!题目描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。你的任务是写一个程序,找出所原创 2021-01-22 11:41:16 · 831 阅读 · 0 评论 -
P5725 【深基4.习8】求三角形 题解
粗心的一路最后成功的代码emm,感想,就是前面一道题的进化版#include <bits/stdc++.h>using namespace std;int main(){ int n,c=1; cin>>n; for(int i=1;i<=n*n;i++) { printf("%02d",i); if(i%n==0) cout<<endl; } .原创 2021-01-21 10:15:01 · 287 阅读 · 1 评论 -
L1-022 奇偶分家 (10分)
我写的emm#include <iostream>using namespace std;int main(){ int n,x,t=0; cin>>n; for(int i=1;i<=n;i++) { cin>>x; if(x%2==0) t++; } cout<<n-t<<" "<<t; return 0.原创 2021-01-20 20:02:28 · 119 阅读 · 0 评论 -
贪心算法-排队接水直呼大佬太厉害了(受教感想)
首先是题目~~题目来自洛谷emm,然后贴我写的代码,用了sort快排和结构体,目的是把号码和数据绑定在一起emm#include <bits/stdc++.h>using namespace std;struct node { int x,y;}a[1005];bool cmp(node a1,node a2){ return a1.x<a2.x;}int main(){ int n; double sum=0; cin>>n; for(in原创 2021-01-20 12:07:03 · 283 阅读 · 0 评论 -
洛谷--P2669 [NOIP2015 普及组] 金币
好了,此处看了大佬代码然后写成c++,感想–自己又再写麻烦代码然后是我的代码(麻烦T妈给麻烦开门)#include <bits/stdc++.h>using namespace std;int main(){ int k,i=1,t=0,t2=0,c=0; cin>>k; while(1) { t+=i; i++; if(t>=k) break; } if(t>k) { for(int j=1;j<=i-2;j++) {原创 2021-01-19 13:06:54 · 172 阅读 · 0 评论 -
P5721 【深基4.例6】数字直角三角形--洛谷
#include<bits/stdc++.h> using namespace std;int main(){ int n,t=1; cin>>n; for(int i=n;i>=1;i--) { for(int j=i;j>=1;j--) printf("%02d",t++); puts(""); } return 0;}原创 2021-01-18 20:39:04 · 205 阅读 · 0 评论 -
P4414 [COCI2006-2007#2] ABC<水题感想emm>--sort是个好东西
题目描述You will be given three integers A, B and C. The numbers will not be given in that exact order, but we do know that A is less than B and B less than C. In order to make for a more pleasant viewing, we want to rearrange them in the given order.输入格式Th原创 2021-01-18 15:51:33 · 245 阅读 · 0 评论 -
L1-012 计算指数 (5分) 菜鸡获奖感言
L1-012 计算指数 (5分)真的没骗你,这道才是简单题 —— 对任意给定的不超过 10 的正整数 n,要求你输出 2n 。不难吧?输入格式:输入在一行中给出一个不超过 10 的正整数 n。输出格式:在一行中按照格式 2^n = 计算结果 输出 2n 的值。输入样例:5输出样例:2^5 = 32这题让求的是2的指数幂,而且给定数1-10,肯定不过int,此时我们考虑的是如何用最少的代码写最高的效率所以 ,笨拙的我的开始想法#include <iostre原创 2021-01-16 17:33:03 · 223 阅读 · 1 评论 -
小甲鱼c++快速入门之calc()重载课后题
**利用重载函数的方法设计一个程序,该程序通过函数“calc()”进行计算并返回显示结果。—当传入一个参数时,计算该参数的平方值—当传入两个参数时,计算两个参数的积—当传入三个参数时,计算三个参数的和。**#include <iostream>using namespace std;void calc(double);void calc(double ,double );void calc(double ,double ,double );int main(){ doubl原创 2021-01-11 16:16:55 · 1128 阅读 · 2 评论