机考刷题
Always_ease
这个作者很懒,什么都没留下…
展开
-
2017计算机学科夏令营上机考试
https://vjudge.net/problem/234975/originAC水题。需要注意x和y的大小比较!!#include<iostream>#include<cmath>using namespace std;bool isprime(int x){ int i; for (i=2;i<=sqrt(x);i++) if (x%i==0)...原创 2018-05-22 21:30:46 · 1728 阅读 · 2 评论 -
递归:1751:分解因数,8758:2的幂次方表示
1751:分解因数题目大意:给定a,设a = a1 * a2 * a3 * ... * an且1<a1<=a2<=a3<= ... <= an,求分解种数。注意a = a也是一种。注意:一定要想明白每个参数的含义。以及为了保证单调性必须规定好遍历的初始值和终止值。#include<iostream>using namespace std;...原创 2018-06-17 20:58:38 · 584 阅读 · 0 评论 -
【数论】【未解决】2104:K-th Number
2104:K-th Number:题目大意,a[1..n],有m个询问,每次询问区间a[i,,,j]内第k小的数只是为了当作找第k大的数的练习,但是貌似还是超时了。在网上找貌似需要线段树,由于时间原因以后再研究吧。目前着重于基于快排的找第k大的数的技巧。注意:两个(i<=j)的break判断不能少超时代码:(但是通过了样例)#include<cstdio>#i...原创 2018-07-21 18:01:20 · 239 阅读 · 0 评论 -
【模板题】【数论】最大公约数GCD最小公倍数LCM——一道例题,两道练习
【模板】7592:求最大公约数问题#include<iostream>#include<algorithm>using namespace std;int GCD(int a,int b){ if (a<b) swap(a,b); if (b==0) return a; else return GCD(a%b,b);}int main()...原创 2018-06-13 20:45:30 · 573 阅读 · 0 评论 -
【模板题】【数论】素数:素数筛法与暴力求解:10:判决素数个数,10:素数对,05:素数回文数的个数,43:质因数分解,11:回文素数:
10:判决素数个数 注意题目没说x<y呀!!!1、素数筛法:即获得一个素数,则标记其倍数为非素数。所有没被之前的数标记的则为素数。注意初值为2*i#include<iostream>#include<string.h>#include<algorithm>#define MAX 100001using namespace std;bo...原创 2018-06-13 19:56:12 · 447 阅读 · 0 评论 -
【数论】【博弈】1350:Euclid's Game
1350:Euclid's Game 题目大意:两人博弈,给出两个数a和b,较大数减去较小数的任意倍数,结果不能小于0,将两个数任意一个数减到0的为胜者。思路:设a大于b,分三种情况:1)a%b = 0:若Stan 先开始,则Stan胜。2)b<a<2*b:走下一步,递归。3)a>=2*b:Stan可以通过选择来使自己胜。因为只有两种结果,且输赢一定交替出现,所以...原创 2018-06-12 20:21:10 · 440 阅读 · 0 评论 -
【模板题】【大整数】加法、乘法、除法、输出 :3道例题
9278:旅行——大整数加法、与int的乘法、输出题目大意:求错排数。需要大整数类。本题采用10000进制处理。注意:前导0的处理!!#include<iostream>#include<string.h>using namespace std;struct Big{ int digit[1000]; int size; void init(...原创 2018-06-12 19:50:05 · 385 阅读 · 0 评论 -
【链表】1748:约瑟夫问题 3254:约瑟夫问题No.2:链表和数组两种解法
1748:约瑟夫问题1、数组解法注意需要设三个变量:c用于报数,i用于遍历队列,peo计算剩余人数#include<iostream>using namespace std;int n,m;void solve(){ int i,c,peo; int a[301]; for (i=1;i<=n;i++) a[i]=i; c=0;i=0;peo=0...原创 2018-07-21 16:08:51 · 1159 阅读 · 0 评论 -
【二叉树】1758:二叉树
1758:二叉树题目大意:线性二叉树,找两节点的最近公共祖先#include<iostream>using namespace std;int a[10];int main(){ int x,y,i,top=0; cin>>x>>y; while(x!=1) { a[top++]=x; x=x/2; } a[top++]=1...原创 2018-06-26 21:47:28 · 438 阅读 · 0 评论 -
【模板题】【图】拓扑排序 两道例题,两种思路:贪心策略及DFS
1094:Sorting It All Out题目大意:给出一堆关系类似"A<B",有三种结果:1)在第k个关系读入后出现环路,2)在第k个关系读入后能够确定排序,3)无法确定顺序。注意:1、出现结果1、2之后之后的s要读但是操作略过2、要判断重复的边(入度不能重复加)3、要先判断环路再判断是否有多个入度为0的点(即没有全部排序)#include<iostream...原创 2018-06-11 20:34:03 · 2214 阅读 · 0 评论 -
【模板题】【图】Floyd 多源最短路+求最小环 RQNOJ 389 心灵的抚慰
RQNOJ 389 心灵的抚慰 思路:问题在于求一个i->j不含k的路径。此时假设k为环中最大的序号点,则d[i][j]不会包含点k,k+1,k+2...。若真正的最小环包含点k,k+1,k+1...,则当前求得的不是全局最小环。注意:1、遍历顺序k、i、j(先遍历经过点)2、求ans一定要放在更新d[i][j]之前,因为在之前最短路更新过程中,k没有参与更新,所以dis[i...原创 2018-06-10 20:26:52 · 340 阅读 · 0 评论 -
【模板题】【图】最短路径 经典例题 ——dijkstra+priority_queue
【经典模板】:PID341 / 星门跳跃题目大意:从1到N有M条边,每条边距离z,求最短路思路:dijkstra+priority_queue。本道题由于数据非常大,时间要求严,不能全部往队列里丢数据,可以在之前加个判断,本次距离是否减小,减小则往队里扔。此外由于优先队列每次都是选取最小距离,则此距离固定,则代表已访问,标记点下次访问到此点直接跳过。注意:1、加判断if(visit...原创 2018-06-10 09:27:05 · 5332 阅读 · 1 评论 -
【STL】优先队列 4078:实现堆结构,2726:集合问题
4078:实现堆结构当type=1,增添操作,接着输入一个整数u,代表要插入的元素。当type=2,输出删除操作,输出并删除数组中最小的元素。思路:优先队列带我飞~~~#include<iostream>#include<queue>using namespace std;struct P{ int val; P(int a){ val=a;}...原创 2018-06-20 20:07:54 · 544 阅读 · 0 评论 -
【模板题】【STL】2729:Blah数集——两个指针的单调队列
2729:Blah数集:以a为基的集合Ba定义如下:(1) a是Ba的第一个元素;(2)如果x在集合Ba中,则2x+1和3x+1也都在集合Ba中;将集合Ba中元素按照升序排列,第N个元素会是多少?思路:保持两个队列头h1、h2,分别代表产生2h1+1,3*h2+1的点。从两个头结点读取t1和t2,若t1<t2则保持t2不变,意思是下一个3*x+1还是x[h2]产生。如输入1 100,此时...原创 2018-06-21 21:32:31 · 1095 阅读 · 2 评论 -
【水题】 2017大数据研究中心夏令营上机考试 A 点排序 B 单词倒排 F双队列
点击打开链接第一题,点倒排,按要求的顺序输出坐标#include<iostream>#include<algorithm>#include<string.h>#include<string>using namespace std;int X,Y;typedef struct P{ int x,y; bool operator <...原创 2018-06-01 16:26:25 · 332 阅读 · 0 评论 -
3249:进制转换——字符串形式的10进制转为2进制
3249:进制转换:将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。思路:用到了大整数类,Big,内嵌一个除2的函数,其他同进制转换#include<iostream>#include<string>#include<stack>#include<string.h>using namespace std;class ...原创 2018-09-08 09:55:07 · 941 阅读 · 0 评论 -
练习:2888:字符串中的数字,2723:不吉利日期,2746:约瑟夫问题,6378:删除数组中的元素(链表)
2888:字符串中的数字:输入一个字符串,将其中是数字的字符提取出来,对它们进行从小到大排序#include<iostream>#include<string>#include<vector>#include<iomanip>#include<ctype.h>#include<algorithm>using ...原创 2018-09-08 10:24:38 · 604 阅读 · 0 评论 -
练习:文件读写,类的继承与重载
文件流读写:#include<iostream>#include<fstream>#include<algorithm>using namespace std;int main(){ fstream in,out; int a[10],i,n=0; in.open("1.txt",ios::in); while(!in.eof()) ...原创 2018-09-08 11:14:47 · 291 阅读 · 0 评论 -
【技巧题】贪心 2017大数据研究中心夏令营上机考试 D:特殊密码锁
原题:点击打开链接假如想提交代码可以用这个:点击打开链接题目大意:按一个按钮时,跟它相邻的两个按钮状态也会反转。如果你按的是最左或者最右边的按钮,该按钮只会影响到跟它相邻的一个按钮。问两个按钮序列的最少按多少个思路:贪心算法,每种按钮只会按或不按,二者肯定只有一种满足要求,确定了之后讨论下一个按钮(其实只要一个循环就可以,一开始以为是dfs就搭了个递归的框架。。。)做题碰到了一些问...原创 2018-06-01 16:25:05 · 323 阅读 · 0 评论 -
【模板题】【string】求最长无重复字符的子串
注意:string不可以对字符赋值【模板题】2、求最长无重复字符的子串 LeetCode原题思路:用两个指针,一个指针用来遍历字符串,两个指针之间保持无重复字符,那么两个指针之间的长度即最大子串的长度。当发现有重复的字符时,先更新ans,另一个指针指向这个字符上一次出现的位置的下一个字符,继续遍历,直到找到最长子串。class Solution {public: int l...原创 2018-06-11 21:19:57 · 227 阅读 · 0 评论 -
字符串练习:2944:单词替换,4104:单词翻转,4030:统计单词数
2944:单词替换:将由多个单词组成的字符串s中的所有a单词变为b单词注意:所有都是以单词为单位,不是以子串为单位。顺便膜拜一下万能的stringstream!#include<iostream>#include<string>#include<sstream>using namespace std;int main(){ int i=0;...原创 2018-07-21 16:56:34 · 402 阅读 · 0 评论 -
简单:28:出现次数超过一半的数
28:出现次数超过一半的数#include<iostream>using namespace std;int n,a[1001];int maj(int c){ int i,count=1; for (i=c+1;i<=n;i++) { if (a[i]==a[c])count++; else count--; if (count==0) b...原创 2018-06-20 19:49:39 · 688 阅读 · 0 评论 -
1750:全排列 —— next_permutation函数的使用
1750:全排列#include<iostream>#include<string.h>#include<string>#include<algorithm>using namespace std;int main(){ char s[10],src[10]; int n; cin>>s; n=strlen(s)...原创 2018-06-17 21:18:03 · 436 阅读 · 0 评论 -
【模板题】【栈】表达式求值问题总结:6263:布尔表达式,01:简单算术表达式求值,4132:四则运算表达式求值(终极BOSS)
6263:布尔表达式:输入一个布尔表达式,请你输出它的真假值样例输入:( V | V ) & F & ( F| V)!V | V & V & !F & (F | V ) & (!F | F | !V & V)(F&F|V|!V&!F&!(F|F&V))思路:本题的关键就是定义优先级,表中含义是后...原创 2018-06-16 20:05:59 · 2662 阅读 · 1 评论 -
【模板题】1696:逆波兰表达式——递归
1696:逆波兰表达式 样例输入* + 11.0 12.0 + 24.0 35.0样例输出1357.000000#include<cstdio>#include<cmath>#include<iostream>using namespace std;double fun(){ char s[100]; cin>&...原创 2018-06-14 21:16:13 · 530 阅读 · 0 评论 -
【模板题】【并查集】 3道经典例题+一道练习——注意维系多个集合的技巧
并查集入门:PID331 / 家族——并查集题目大意:n个人中有m对亲戚关系,之后询问p对是否有亲戚关系注意:1、初始化Tree[i]=-12、在合并两个集合时要先判断是否在一个集合(x1!=x2)#include<iostream>#include<vector>#include<string.h>using namespace std;...原创 2018-06-09 08:42:17 · 2682 阅读 · 0 评论
分享