刷题刷题(个人记录)
2019校招真题汇总
1.被3整除(网易)
#include<iostream>
using namespace std;int func(int a)//求得几位数
{int n=0;while(a){a=a/10;n++;}return n;
}int main()
{int n,m;while(cin>>n&&cin>>m){long long num = 0;for(int i = 1;i <= n;i++){int a=func(i);while(a){num = num*10;a--;}num=num+i;}int sum=0;for(int i = n;i<=m;i++){if(num&3==0) sum++;int a=func(i);while(a){num = num*10;a--;}num=num+i;}return sum;}
}
2.安置路灯
算法思路
遍历路灯字符串,遇见“.”,就给计数器+1,然后往后挪三个位置。如果遇到“X”,就直接往后挪一个位置。
编程思路
路灯个数放入数组n中,路灯对应的字符串放入数组lantern中,要放路灯的个数放入lantern_count中。这三个数组是一一对应的。双重循环来遍历lantern中的字符串,如果遇到“.”,对应的lantern_count+=1,j+=3(挪三个位置)。如果遇到“X”,j+=1(挪一个位置)。
#include <iostream>
#include<string>using namespace std;
int main()
{int t; cin >> t;for(int i=0;i<t;i++){int length,sum=0;cin>>length;string tmp;cin>>tmp;for(int j=0;j<length;j++){if(tmp[j]=='X')continue;else{j+=2;sum++;}}cout<<sum<<endl;}
}
3.迷路的牛牛
先做个弊
#include <iostream>
#include <string>
using namespace std;int main()
{int n;while(cin>>n){string s;for(int i=0;i<10000;i++){s+="NESW";}int j=5000;string b;while(cin>>b){for(int i=0;i<n;i++){if(b[i]=='L') j--;else j++;}cout<<s[j]<<endl;}}
}
#include <iostream>
#include <string>
#include <vector>
using namespace std;int main()
{int n;while(cin>>n){vector<string>vec;vec.push_back("N");vec.push_back("E");vec.push_back("S");vec.push_back("W");string b;int j=0;while(cin>>b){for(int i=0;i<n;i++){if(b[i]=='L'){if(j==0) j=3;else j--;}else{if(j==3) j=0;else j++;}}cout<<vec[j]<<endl;}}
}
#include<bits/stdc++.h>
using namespace std;int main(){int n; cin >> n;int ans = 0;char dir[] = "NESW";string str; cin >> str;for(int i = 0; i < n; i++)ans = (ans + (str[i] == 'L' ? -1:1) + 4) % 4;cout << dir[ans%4] << endl;return 0;
}
4.数对
朴素的做法是枚举n^2个点然后跟k作比较。这显然对n<=100000的规模来说是不允许通过的。
注意到当除数是y时,当x=1~n时,余数是1,2,3,…,y-1,0循环出现,循环节长度显然是y
那么我们可以枚举y=k~n(当y<k时所有余数均小于k,因此不需要考虑)
然后对于x=1~n,总共出现了[n/y]个循环节,然后数出每个循环节里面不小于k的余数。最后再数出不满一个循环节的不小于k的余数,就是答案了。注意当k=0的时候由于余数0出现在循环的末尾,因此要特别判断。
复杂度为O(n)
#include <iostream>
#include <algorithm>
using namespace std;int main()
{long long n,k;cin>>n>>k;long long ans=0;for(int y=max(1LL,k);y<=n;++y){int res=0;res=n/y*(y-k);if(n%y>=k)if(k)res+=n%y-k+1;else res+=n%y;ans+=res;}cout<<ans<<endl;
}
刷题刷题(个人记录)相关推荐
- CTFShow web入门题刷题记录
CTFShow web入门题刷题记录(信息搜集) web1 提示:开发注释未及时删除 打开网页查看源代码发现 flag:flag{2b2cf8e3-f880-41e1-a8ff-02601b3d998 ...
- Leetcode刷题 463题:岛屿的周长(基于Java语言)
** Leetcode刷题 463题:岛屿的周长(基于Java语言) ** 一. 题目描述: 给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域. 网格中的格子水平和垂直方向相 ...
- js逻辑训练题_二建冲刺必刷300题!精选历年真题+母子题+模考易错题!
订阅公众号,回复[口诀],获取完整版实务口诀 你是不是常常疑惑为什么同样在做题,同样熬通宵,同样很努力,为什么有人顺利拿证,有人却因几分之差黯然落榜? 因为二建不仅拼努力的程度,更要拼对精准二建信息的 ...
- Leecode刷题热题HOT100导航目录
导航 前言 题目目录 总结 前言 本文记录LeetCode刷题热题HOT100系列文章目录. 本系列文章包括: 自己在LeetCode刷题过程中自己的解题思路 优秀的解题思路 通过题目的自己代码 优秀 ...
- leetcode剑指offe刷题-第一题-用两个栈实现队列
leetcode剑指offe刷题-第一题 文章目录 leetcode剑指offe刷题-第一题 前言 一.用两个栈实现队列 1.思路 2.代码如下 总结 前言 记录一下自己刷算法的路程. leetcod ...
- 狂刷OJ基础题两天,OJ机考成功半小时全部AC了
一.背景 我们学校有个程序设计实践(C\C++版),成绩就是平时给了54题刷够50+就平时分满分,期末考试就是上机考试八题(大概分为数论.简单计算.时间显示.进制转换.字符串.递归.枚举几大类型),只 ...
- “计算机程序设计能力考试(乙级)”真题刷题(三)
"计算机程序设计能力考试(乙级)"真题刷题 十一.题目:1011 A+B 和 C (15 分) 给定区间 [−2 31 ,2 31 ] 内的 3 个整数 A.B 和 ...
- “计算机程序设计能力考试(乙级)”真题刷题(六)
"计算机程序设计能力考试(乙级)"真题刷题 二十六.题目:1026 程序运行时间 (15 分) 要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 ...
- Oracle数据库:刷题错题本,数据库的各种概念
Oracle数据库:刷题错题本,数据库的各种概念 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle ...
- 【数据结构 C语言版】第六篇 栈、队列经典必刷面试考研题
[数据结构 C语言版]第六篇 栈.队列经典必刷面试考研题 写在前面 更新情况记录: 最近更新时间 更新次数 2022/10/20 1 参考博客与书籍以及链接: (非常感谢这些博主们的文章,将我的一些疑 ...
最新文章
- Java 中字符串的格式化
- java中的foreach语句
- docker问题备忘:“rpc error: code = 2 desc = containerd: container not found“
- UI- UIView控件知识点回顾
- C# 读取指定目录中的所有文件,并按规则生成SQL语句!
- 调试.NET CORE代码
- java 调用jira_java中通过JIRA REST Java Client 使用jira
- 搞定网页打印自动分页问题
- Windows + IDEA + SBT 打造Spark源码阅读环境
- python tkinter button_Python连载60-Tkinter布局、按钮以及属性详解
- 敏捷开发团队管理系列之二:程序与测试团队I
- TOGAF9-certification简介
- JAVA前后端分离项目实战
- webservice 实现与his系统对接_基于互联网架构的一体化HISamp;EMR设计与实现
- stm32f103gd32的usb虚拟串口,打印类printer组合设备
- 自学软件测试,缺少项目实战怎么办?
- 程序员必备 —— Git
- 加密狗 检测到程序在终端服务器上运行
- 记frp内网穿透配置
- SimpleRNN实现股票预测