昨天刚考完,oj上题目已经看不了了,不过交的代码都还在,趁热回忆一下

整体情况:

共169人,第四题全军覆没,8人3A,77人2A,40人1A,44人0A

最后的排行榜(id截掉了):

problem A 二进制数字翻转

输入数据组数t

每组数据输入一个十进制数x(0<x<2^32),将其二进制位反转(共32位),然后输出对应的十进制数

签到题,唯一坑点就是int表示不了2^32-1吧,用long long就行了

AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[32];
int main()
{int t,n,i;ll x;cin>>t;while(t--){memset(a,0,sizeof(a));cin>>x;i=0;do{a[i++]=x%2;x/=2;}while(x);ll re=0;for(i=0;i<32;i++){re=re*2+a[i];//低位变高位,相当于反转了}cout<<re<<endl;}return 0;
}

problem B 数字填充

就是用点阵表示数字,5*3的方格表示0~9,具体见样例及代码,0是然后输入一个数字串,用点阵输出

样例输入

02

样例输出

111111
101001
101111
101100
111111

这种暴力题我一开始是拒绝的==ctrl cv大法

每行用一个string表示,用存好的点阵数字相加起来然后输出就行了

AC代码:

#include<bits/stdc++.h>
using namespace std;
struct node{string s[5];
}num[10];
int main()
{int t,i,j;num[0].s[0]="111";//先存好0-9的点阵表示num[0].s[1]="101";num[0].s[2]="101";num[0].s[3]="101";num[0].s[4]="111";num[1].s[0]="001";num[1].s[1]="001";num[1].s[2]="001";num[1].s[3]="001";num[1].s[4]="001";num[2].s[0]="111";num[2].s[1]="001";num[2].s[2]="111";num[2].s[3]="100";num[2].s[4]="111";num[3].s[0]="111";num[3].s[1]="001";num[3].s[2]="111";num[3].s[3]="001";num[3].s[4]="111";num[4].s[0]="101";num[4].s[1]="101";num[4].s[2]="111";num[4].s[3]="001";num[4].s[4]="001";num[5].s[0]="111";num[5].s[1]="100";num[5].s[2]="111";num[5].s[3]="001";num[5].s[4]="111";num[6].s[0]="111";num[6].s[1]="100";num[6].s[2]="111";num[6].s[3]="101";num[6].s[4]="111";num[7].s[0]="111";num[7].s[1]="001";num[7].s[2]="001";num[7].s[3]="001";num[7].s[4]="001";num[8].s[0]="111";num[8].s[1]="101";num[8].s[2]="111";num[8].s[3]="101";num[8].s[4]="111";num[9].s[0]="111";num[9].s[1]="101";num[9].s[2]="111";num[9].s[3]="001";num[9].s[4]="111";cin>>t;while(t--){node re;string q;cin>>q;int ql=q.length();for(i=0;i<ql;i++)//每个数的每一行加起来{for(j=0;j<5;j++){re.s[j]+=num[q[i]-'0'].s[j];}}for(i=0;i<5;i++){cout<<re.s[i]<<endl;}}return 0;
}

problem C  发财数

一个大于等于2的整数,如果可以分解为8个或8个以上的素数相乘,则称其为发财数,让你输出第n个发财数(n最大到1w)

样例输入:

1

1

样例输出:

256

额...水平比较low没想到什么好的解法,暴力解决==用cin、cout是800ms,scanf、printf应该会快得多

AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define maxn 400007//最大遍历到40w 就能找到第1w多个发财数
int vis[maxn],p[maxn];
ll fa[maxn];
void init(int n)//线性筛
{int pos=0;memset(vis,0,sizeof(vis));int i,j;for(i=2;i<n;i++){if(!vis[i]) p[pos++]=i;for(j=0;j<pos&&i*p[j]<n;j++){vis[i*p[j]]=1;if(i%p[j]==0) break;}}}int main()
{init(maxn);int t,n,i,k,j,q;vector <int> v;for(k=2;k<400000;k++)//遍历到40w {if(!vis[k]) continue;//是素数则直接跳过int kt=k;int anssize=0;int ansprime[30];int ansnum[30];for(i=0;i<1000;i++)//用前1000个素数来测试{//这个40w和1000,无脑试了很多次才确定这个范围,各位大佬有什么简便方法请指教 if(kt%p[i]==0)//素数分解,可以参考王道第四章的分解素因数 {ansprime[anssize]=p[i];ansnum[anssize]=0;while(kt%p[i]==0){ansnum[anssize]++;kt/=p[i];}anssize++;if(kt==1) break;}}int su=0;for(i=0;i<anssize;i++){su+=ansnum[i];}if(su>=8)//是发财数就存起来 {v.push_back(k);}}int vs=v.size();cin>>t;while(t--){cin>>n;cout<<v[n-1]<<endl;}return 0;
}

problem D 最长平衡串

给定只含01的字符串,找出最长平衡子串的长度(平衡串:包含0和1的个数相同),串长最大十万

这个题呢,自己见识太少又想不出巧方法,只能O(n^2)暴力,可想而知TLE了

之后群里有大佬们讨论,把0换成-1然后用前缀和来做,也挺简单的吧,就怪自己太渣想不到

附两个类似题型链接

https://blog.csdn.net/became_a_wolf/article/details/48129073

http://www.bubuko.com/infodetail-2273733.html

2017蓝桥杯初赛最后一题也是前缀和:https://www.cnblogs.com/-citywall123/p/12337928.html

前三道题的运行时间:

写的代码很渣,大佬勿喷。。。本人菜鸟一个,没接触过acm,代码能力极差

总结:

对acm大佬望尘莫及五体投地!!!

北邮2018计算机院考研复试机试上机题解+结果统计相关推荐

  1. 北邮计算机机试的编译器,北邮2018计算机院考研复试机试上机题解+结果统计

    签到题,唯一坑点就是int表示不了2^32-1吧,用long long就行了 AC代码: #includeusing namespace std; typedef long long ll; int ...

  2. 华师大计算机在线作业,华东师范大学计算机考研复试机试习题

    华东师范大学计算机考研复试机试习题 华东师范大学计算机考研:计算机系.数据学院复试机试历年真题以及AC代码.历年学长总结得到.适用学院:计算机学院.数据学院.软件学院也可参考.sum/=10;prin ...

  3. 南京大学java机试,2019年南京大学计算机考研复试机试真题

    目录 第一题 Stepping Numbers 题意 思路 代码 反思 第二题 Nodes from the Root 题意 思路 代码 大佬的标准题解代码: 菜鸡我的又费空间,又费时间,又臭又长,思 ...

  4. 北邮2019软院考研经验分享

    首先自报家门,楼主本科北京一所双非,本科计科,应届考北邮软工学硕,基本上不算跨考了.初试政治一68,英语一64,数学一100,专科课115,总分347,复试机试1A, 学硕二组排名中等,还没出结果,先 ...

  5. 上海交大计算机考研复试,上海交大计算机考研复试机试

    上海交大 计算机考研 SJTU-CS 复试机试 (2005-2010) 题目 我自己在准备考研时曾做了下06,07,08,09年的题目,并且在博客中提供了一个参考的题解,10年的题目以及11年保研的题 ...

  6. 华科00年计算机考研复试机试

    [1]输入n, 求y1=1!+3!+...m!(m是小于等于n的最大奇数) y2=2!+4!+...p!(p是小于等于n的最大偶数) 参考代码: #include<stdio.h> int ...

  7. 计算机保研面试基础知识,华科计算机保研复试机试题目

    华中科技大学复试机试题目 2008年 一. 1.狼过河问题(运用到回溯) 2.统计文件中单词数目 3.N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(递归) 4.链表操作 二. 第一个是 ...

  8. 华科计算机保研复试题目,华科计算机保研复试机试题目2.doc

    华中科技大学复试机试题目 2008年 一. 1.狼过河问题(运用到回溯) 2.统计文件中单词数目 3.N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(递归) 4.链表操作 二. 第一个是 ...

  9. 北邮考研复试机试准备过程(已上岸)

    纯自用请勿转载,用来给自己最后复习和捋思路用的,主要参考牛客网+王道机试指南,C.C++混用.考研人太久不写代码了-什么都不记得了,从头开始过一遍吧. 黑色代码段是要记住的重点函数/方法.每天下午做几 ...

最新文章

  1. python os system用法_Python调用系统命令os.system()和os.popen()的实现
  2. 什么是系统调用?为什么要用系统调用?
  3. 201503-4 网络延时 (本质是求树的最长路径)
  4. 怎么在linux操作python_pythonlinux怎么操作
  5. linux下elasticsearch的安装
  6. LG化学和三星SDI宣布关闭美国电池工厂直至4月13日
  7. 权限 shareuser certificat Runtime.exec
  8. Android NFC 标签读写读取快速开发教程 ( 整理来自 https://blog.csdn.net/wolfking0608/article/details/72675180 )
  9. 学习类App原型制作分享-Wokabulary
  10. E001检测到您的环境不支持HTML5,佳能打印机故障代码、故障原因、故障排除
  11. POI在Excel中导出图片(含多图)
  12. 解决linux中挖矿病毒
  13. asp.net1053-酒店宾馆客房预订管理系统#毕业设计
  14. Kotlin-简约之美-进阶篇(四):访问权限控制
  15. HDC.Cloud Day | 全国首场上海站告捷,聚开发者力量造梦、探梦、筑梦
  16. python爬取微信公众号文章
  17. 判断一个APP页面是原生的还是H5页面
  18. 89.网络安全渗透测试—[常规漏洞挖掘与利用篇5]—[文件包含漏洞详解实战示例]
  19. 焦虑的80后新中产,崩溃得不动声色,到底是新中产还是“心中惨”?
  20. linux查看文件是否是x86架构,Linux下查看系统架构类型的几种方法

热门文章

  1. java开发,IDE,eclipse字体大小设置
  2. 统计学基础-数据的图表展示
  3. shell 变量名中包含变量
  4. 算法补天系列之——暴力递归
  5. checkbox选中selec才可选和显示隐藏密码
  6. linux中mongodb的安装配置及基础使用
  7. 好久不见!!菜鸟学习笔记之Scala学习笔记(部分),持续更新~~
  8. 全球19级谷歌卫星地图免费查看下载
  9. 四支独立团队如何通过Kickstarter获得资金:第一部分
  10. 老鱼Python数据分析——篇四:多线程处理