didi-笔试
import java.util.*; /**
* 正整数,没有前导0
* 相邻的数字不能相同
* 可以被3整除
* 输入:?12?0?9??
* 输出:212101902
*/
public class Main {
static List<Integer> idxs = new ArrayList<>(); // 记录'?'字符的下标 public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
char[] s = line.toCharArray(); int bitSum = 0; // 记录每一位的和
for (int i = 0; i < s.length; i++) {
char c = s[i];
if (c == '?') {
idxs.add(i);
} else {
bitSum += c - '0';
}
} dfs(s, 0, bitSum);
System.out.println(String.valueOf(s));
} private static boolean dfs(char[] s, int index, int bitSum) {
if (index == idxs.size()) { // 遇到最后一个'?'
if (bitSum % 3 == 0) {
return true;
} else {
return false;
}
} int i = idxs.get(index); for (int k = 0; k <= 9; k++) {
if (i == 0 && k == 0) continue; // 第一个元素不能为0
if (i-1 >= 0 && s[i-1] - '0' == k) continue; // 元素不能和左右元素相邻
if (i+1 < s.length && s[i+1] - '0' == k) continue;// 元素不能和左右元素相邻
s[i] =(char)(k + '0');
if (dfs(s, index + 1, bitSum + k)) {
return true;
}
s[i] = '?';
} return false;
}
}
作者:AWeiii
链接:https://www.nowcoder.com/discuss/1055125?type=post&order=recall&pos=&page=0&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=B56220295BC9488455FA8FAE9D10BC82-1663405034525
来源:牛客网 每段栅栏要刷p次1号油漆和q次2号油漆才不会掉色。 第一行有三个正整数n,p,q(1<=n<=100000,1<=p,q<=n),代表刷漆的次数,以及两个参数 p 和 q。 第二到四行给出了一个大小为3*n的矩阵,第 i 列的三个数从上到下记为l,r,t(1<=l,r<=1000000000,1<=t<=2),代表第i次刷漆将编号在 l 到 r 之间的栅栏刷了一遍 t号油漆。 输出一个正整数,代表有多少栅栏可以长时间不掉色。 输入:
5 2 2
1 1 2 3 2
3 5 4 5 4
1 2 1 1 2 输出:
3
思路:差分 91% #include <bits/stdc++.h>
using namespace std; vector<long long> F;
vector<long long> S;
int main()
{ int n, p, q;
cin >> n >> p >> q; vector<long long> l(n);
vector<long long> r(n);
vector<long long> t(n);
long long maxn = 0;
for (int i = 0; i < n; ++i)
{
cin >> l[i];
} for (int i = 0; i < n; ++i)
{
cin >> r[i];
maxn = max(r[i], maxn);
} for (int i = 0; i < n; ++i)
{
cin >> t[i];
} F.resize(maxn+2);
S.resize(maxn+2); for (int i = 0; i < n; ++i) {
if(t[i] == 1) {
++F[l[i]];
--F[r[i]+1];
} else {
++S[l[i]];
--S[r[i]+1];
}
} int res = 0; for (int i = 2; i < maxn+2; ++i)
{
F[i] += F[i - 1];
S[i] += S[i - 1];
if(F[i] >= p && S[i] >= q) {
++res;
}
} cout << res; return 0;
}
// 需要离散化
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt(); int p=sc.nextInt(); int q=sc.nextInt();
sc.nextLine();
int[][] a=new int[n][3];
a[0]=Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
a[1]=Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
a[2]=Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
Map<Integer,int[]> map=new HashMap<>();
for(int i=0;i<n;i++){
int[] tmp1=map.getOrDefault(a[0][i]-1, new int[2]);
int[] tmp2=map.getOrDefault(a[1][i], new int[2]);
tmp1[a[2][i]-1]--;
tmp2[a[2][i]-1]++;
map.put(a[0][i]-1, tmp1);
map.put(a[1][i], tmp2);
}
List<Map.Entry<Integer,int[]>> list=new ArrayList<>();
for(Map.Entry<Integer,int[]> v:map.entrySet()){
list.add(v);
}
Collections.sort(list,(x, y)->{
return y.getKey()-x.getKey();
});
// System.out.println(list.size());
int res=0;
int curp=0, curq=0;
int lastk=-1;
for(Map.Entry<Integer,int[]> v : list){
int tmpk=v.getKey();
//System.out.println(tmpk);
int[] tmpv=v.getValue();
if(lastk==-1){
curp+=tmpv[0];
curq+=tmpv[1];
lastk=tmpk;
}else{
if(curp>=p&&curq>=q){
res+=lastk-tmpk;
}
curp+=tmpv[0];
curq+=tmpv[1];
lastk=tmpk;
}
}
System.out.println(res);
}
}
didi-笔试的更多相关文章
- C++常见笔试面试要点以及常见问题
1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...
- 2016网易春招Java在线笔试回忆录
别看是在线笔试,但是非常严格,全称窗口不得最小化和关闭,转移,全称需要打开摄像头监控,使用草稿纸需要摄像头对准……反正2个小时,题量在那儿摆着,有作弊的功夫不如好好做做最后的编程题呢……网易不让泄漏原 ...
- BAT及各大互联网公司2014前端笔试面试题--Html,Css篇
很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正 ...
- BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习js更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正确, ...
- IT求职中,笔试、面试的算法准备
PS:此文章为转载,源地址:http://www.newsmth.net/nForum/#!article/CoderInterview/849 作者应该是在美国进行的笔试面试,感觉面试的的公 ...
- # C/C++的笔试题目
p,li { white-space: pre-wrap } # C/C++的笔试题目 + include<> 和include"" 的区别 + sizeof操作符与字 ...
- 技术渣如狗,面试虐成猴——本科楼主UC笔试加处女一面全纪录
背景——楼主为广州某校小本一枚,学习成绩渣(班里排名几乎倒数),技术基础渣(算是会敲代码,但很多计算机网络.操作系统的知识都只有模糊的印象).在舍友的鼓励下,收到广州UC的面试通知后,勇敢来到公司直面 ...
- DP - tencent2016实习生笔试A
tencent2016实习生笔试A Problem's Link ------------------------------------------------------------------- ...
- dp - 2016腾讯笔试 A
2016腾讯笔试 A Problem's Link -------------------------------------------------------------------------- ...
- 各大IT公司校园招聘程序猿笔试、面试题集锦
转自:http://blog.csdn.net/hackbuteer1/article/details/7959921#t4 百度一面 1.给定一个字符串比如“abcdef”,要求写个函数编程“def ...
随机推荐
- QtQuick使用MediaPlayer抓取摄像头影响报错Error: "Your GStreamer installation is missing a plug-in."
环境:ubuntu18.04 Qt5.9.5 描述:项目需要使用qtquick作为显示界面用于播放从网络摄像头抓取的影像,海康网络摄像头,摄像头源协议使用的是rtsp,影像数据格式为x-h264,但在 ...
- 12月1日内容总结——表单标签知识补充、css介绍、css选择器和选择器的优先级、css样式调解
目录 一.表单标签的补充说明 1.用于获取用户数据的标签至少应该含有name属性 2.如果不需要用户填写数据 只需要选择 那么我们需要自己填写value 3.针对input标签理论上应该配一个labe ...
- 重学SpringBoot. step6 SpringBoot高级技巧
SpringBoot高级技术 博客地址: step6 SpringBoot高级技巧 异步线程池 书上讲的是什么像异步操作那样,然后不需要等待. 问题是,不需要等待,但数据在生成的时候的时间并不能省. ...
- Nacos入门
1.介绍 ①概要 官网:home (nacos.io) Nacos:Dynamic Naming and Configuration Service(动态命名和配置服务) 你可以看为:Eureka(注 ...
- Centos7下areaDetector IOC的编译后记
https://github.com/EPICS-synApps/support/releases synApps出新版了,本文发文时的最新版为:R6-2 Centos7下areaDetector I ...
- 美团点评CAT部署了各种环境不下10次,遇到的坑整理
CAT是什么 我的理解是一个收集服务调用等运行情况的监控系统. 相信你能搜到这篇博客我就不多介绍了,这里有链接 传送门 本博客仅仅只帮助大家解决部署方面的问题 来自一个用户的吐槽 1.部署真他娘的困难 ...
- Postgresql清理WAL日志
WAL是Write Ahead Log的简写,和oracle的redo日志类似,存放在$PGDATA/pg_xlog中,10版本以后在$PGDATA/pg_wal目录. 1.如果开启了归档,在目录ar ...
- MySQL 查询常用操作(0) —— 查询语句的执行顺序
MySQL中明确查询语句的执行顺序极其重要,了解执行顺序才不至于犯一些简单错误,例如having 后面是否可以使用 select 中重命名的列名等问题.另外SQL中实际使用最频繁的就是查询(Quein ...
- Linus对Linux 6.3内核的合并解释不满
Linux 6.3 内核的合并窗口已开启,Linus Torvalds 也收到了大量的 PR,目前总体看来正在有序进行.但 Linus 对部分合并请求的日志信息非常不满:"我之前就已经说过, ...
- Date时间API
JDK8之前时间API 1. java.lang.System类 System类提供的public static long currentTimeMillis()用来返回当前时间与1970 ...