京东2018秋招校招Java研发岗
来源:互联网 发布:nginx 动态服务器 编辑:程序博客网 时间:2024/04/29 11:32
1.括号匹配问题
题目:有一个合法的字符串,合法是指左括号与右括号全部能配对,现在每次将这个序列第一个左括号删去,在将任意一个右括号删去,每次删去后的序列必须合法,求有多少种方法,答案对10000000007。
输入:
一个合法括号序列。
输出:
方案数。
1
2
3
4
5
6
7
样例1:
Input:
()()()()
Output:
1
1
2
3
4
5
6
7
样例2:
Input
(((())))()()
Output:
24
#include <bits/stdc++.h>using namespace std;string s;int main() { cin >> s; int ans = 1, cnt = 0; for(int i = 0; i < s.size(); i++) { if(s[i] == '(') { cnt++; } else { ans *= cnt; cnt--; } } cout << ans << endl;
2.求幂运算
求幂
分析
裸暴力好像只能拿20%的分
我们考虑去枚举n范围内的所有i,然后处理出i的幂那些数。
考虑对于i ^ x, 我们需要计算满足 (i ^ x) ^ c = (i ^ y) ^ d的数量,其中i ^ x, i ^ y <= n. 这些我们可以通过预处理出来。
然后对于(i ^ x) ^ c = (i ^ y) ^ d 其实意味着x c = y d, 意味着(x / y) = (d / c), 其中x, y我们可以在预处理之后枚举出来,于是我们就可以借此计算出n范围内有多少不同这种c和d去满足等式。
其实就等于 n / max(x / gcd(x, y), y / gcd(x, y)),然后都累加进答案。gcd()表示最大公约数。
中间可能产生重复枚举,我们用一个set或者hash容器标记一下就好。
以上枚举对于2~sqrt(n)。最后对于大于sqrt(n)的部分,每个的贡献都是n。
import java.util.HashSet;import java.util.Scanner;import java.util.Set;public class Main { public final static long MOD = 1000000000 + 7; public static int max(int a, int b){ return (a>b) ? a : b; } public static long gcd(long a,long b){ return (a % b == 0) ? b : gcd(b,a%b); } public static void main(String[] args) { Scanner in = new Scanner(System.in); long n = in.nextInt(); long ans = (long)1*n*(n*2-1) % MOD; Set<Integer> set = new HashSet<>(); for (int i = 2; i*i <= n; i++){ if ( set.contains(i)) continue; long tmp = i; int cnt = 0; while(tmp <= n) { set.add((int)tmp); tmp = tmp * i; cnt++; } for(int k = 1; k <= cnt; k++) { for(int j = k + 1; j <= cnt; j++) { ans = (ans + n / (j / gcd(k, j) ) * (long)2 ) % MOD; } } } System.out.println(ans); }}
阅读全文
0 0
- 京东2018秋招校招Java研发岗
- 网易2018秋招校招Java研发岗
- 京东Java研发值不值得去?
- 阿里2018秋招模拟笔试Java研发岗试题
- Java研发实习岗一面问题总结
- 2018届网易 java研发现场面试
- 分金币问题---阿里巴巴2018年校招内推Java研发岗在线编程测验
- Java研发笔试基础
- Java研发求职指南
- java研发面试准备
- Java框架研发思考
- 京东校招2017届应届生java研发岗,面试一,感想
- 搜狗笔试题(JAVA研发岗)
- 记阿里一面经历(java研发岗)
- 2015 阿里面试 java研发
- java研发工程师、数据库开发
- 阿里面试java研发工程师
- Java研发技术学习路线
- jar包验证码
- 图文详解彻底关闭win10创意者更新版本自带的windows defender杀毒软件
- ndk编静态库遇到的错误
- 性能工具 MiniProfilter
- JavaScript、JQuery初步认识
- 京东2018秋招校招Java研发岗
- 输入一个秒数,转化成时分秒
- 【科普】人眼到底等于多少像素
- FPS第三人称主角
- Hello Word
- 使用FME匹配中文
- Servlet中的Request和Response的请求和响应概述
- VirtualBox下扩容vdi文件
- uCOS-II中任务的优先级翻转现象