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-笔试的更多相关文章

  1. C++常见笔试面试要点以及常见问题

    1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...

  2. 2016网易春招Java在线笔试回忆录

    别看是在线笔试,但是非常严格,全称窗口不得最小化和关闭,转移,全称需要打开摄像头监控,使用草稿纸需要摄像头对准……反正2个小时,题量在那儿摆着,有作弊的功夫不如好好做做最后的编程题呢……网易不让泄漏原 ...

  3. BAT及各大互联网公司2014前端笔试面试题--Html,Css篇

    很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正 ...

  4. BAT及各大互联网公司2014前端笔试面试题--JavaScript篇

    很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习js更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正确, ...

  5. IT求职中,笔试、面试的算法准备

    PS:此文章为转载,源地址:http://www.newsmth.net/nForum/#!article/CoderInterview/849     作者应该是在美国进行的笔试面试,感觉面试的的公 ...

  6. # C/C++的笔试题目

    p,li { white-space: pre-wrap } # C/C++的笔试题目 + include<> 和include"" 的区别 + sizeof操作符与字 ...

  7. 技术渣如狗,面试虐成猴——本科楼主UC笔试加处女一面全纪录

    背景——楼主为广州某校小本一枚,学习成绩渣(班里排名几乎倒数),技术基础渣(算是会敲代码,但很多计算机网络.操作系统的知识都只有模糊的印象).在舍友的鼓励下,收到广州UC的面试通知后,勇敢来到公司直面 ...

  8. DP - tencent2016实习生笔试A

    tencent2016实习生笔试A Problem's Link ------------------------------------------------------------------- ...

  9. dp - 2016腾讯笔试 A

    2016腾讯笔试 A Problem's Link -------------------------------------------------------------------------- ...

  10. 各大IT公司校园招聘程序猿笔试、面试题集锦

    转自:http://blog.csdn.net/hackbuteer1/article/details/7959921#t4 百度一面 1.给定一个字符串比如“abcdef”,要求写个函数编程“def ...

随机推荐

  1. Linux音频采集和在国产化平台中遇到的坑(二)

    Linux音频采集和在国产化平台中遇到的坑(二) ALSA采集这条路走不通,只能尝试其他途径,这里通过PulseAudio的接口成功实现了采集麦克风和系统声音的功能. linux PulseAudio ...

  2. 【分析笔记】全志平台 gpio_wdt 驱动应用和 stack crash 解决

    使用说明 第一次遇到看门狗芯片是通过切换电平信号来喂狗,如 SGM706 芯片,之前也比较少会用到看门狗芯片.原本打算参考 sunxi-wdt.c 的框架,利用定时器自己写一个,无意中发现内核已经有 ...

  3. Java CompletableFuture 异步超时实现探索

    作者:京东科技 张天赐 前言 JDK 8 是一次重大的版本升级,新增了非常多的特性,其中之一便是 CompletableFuture.自此从 JDK 层面真正意义上的支持了基于事件的异步编程范式,弥补 ...

  4. 深度复盘-重启 etcd 引发的异常

    作者信息: 唐聪.王超凡,腾讯云原生产品中心技术专家,负责腾讯云大规模 TKE 集群和 etcd 控制面稳定性.性能和成本优化工作. 王子勇,腾讯云专家级工程师, 腾讯云计算产品技术服务专家团队负责人 ...

  5. 线程私有变量ThreadLocal详解

    本文已收录至Github,推荐阅读 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 烈火试真金,逆境试强者.--塞内加 目录 什么是ThreadLocal ThreadLo ...

  6. Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation

    1.出现问题 查询数据时报如题错误 2.解决方案 建表时需指定字符集,例如: -- ---------------------------- -- Table structure for testTa ...

  7. 滴水2.c++构造 与 继承

    1.构造函数特点 2.析构函数的特点: 析构函数前面必须有~ 3.继承 一个子类可以有多个父类 作业1. #include<stdio.h> struct DateInfo { int y ...

  8. JZOJ 2022.02.10【提高组】模拟总结

    \(\text{简要题解}\) \(\text{GDOI2012}\) 的题 不得不说当年的题做起来真的很不爽 整体看起来就是数据结构+博弈论+宽搜+背包dp优化 考场上 \(T1\) 十分钟解决过了 ...

  9. CF1736C1 Good Subarrays (Easy Version)

    题目传送门 思路 给出一种不需要脑子的做法. 首先我们把每个 \(a_i\) 都减去 \(i\),这样原问题就转化为对于每一个左端点 \(i\),寻找一段连续的区间,使得这段区间的最小值加上 \(i- ...

  10. MySQL创建表的三种方式

    创建表的三种方式 通过create语句直接创建 语法: create [TEMPORARY] table [IF NOT EXISTS] table_name ( col_name column_de ...