美团8.15 笔试统计

1、输出满足条件的逆序对
2、并查集求旅行次数
3、外卖小区
4、车辆调度
5、装饰

为什么我第一题一直是51%呢,我把1000000的满足条件的都打印了,然后判断n就直接输出,奇怪了。
我的思路是直接跑完所有的满足条件的,然后判断
2178 8712
21978 87912
219978 879912
2199978 8799912


#美团#
全部评论
要注意逆序对中的两个数都要<=n
1 回复 分享
发布于 2020-08-15 18:12
第五题 import java.util.*; public class Main {     static int MOD = 998244353;     static int m;     static int n;     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         m = sc.nextInt();         n = sc.nextInt();         int[][] dp = new int[n + 1][m + 1];         for (int i = 1; i <= m; i++) {             dp[1][i] = m / i;         }         for (int i = 2; i <= n; i++) {             for (int j = 1; j <= m; j++) {                 for (int k = j; k <= m; k += j) {                     dp[i][j] = (dp[i][j] + dp[i - 1][k]) % MOD;                 }             }         }         System.out.println(dp[n][1]);     } }
1 回复 分享
发布于 2020-08-15 18:15
a了4.18...
1 回复 分享
发布于 2020-08-15 19:21
不清楚我也是这样
点赞 回复 分享
发布于 2020-08-15 18:10
有没有第一题的代码参考下
点赞 回复 分享
发布于 2020-08-15 18:10
蹲大佬的题解 美团有阴影了  第一题1100和11是逆序对那种要怎么考虑?
点赞 回复 分享
发布于 2020-08-15 18:10
第一题一直55
点赞 回复 分享
发布于 2020-08-15 18:10
我第一个全a了后面第二第三题不管怎么调都是9%。。然后第四第五题没时间想了直接print(用例输出)还给了俩18% 我挺懵逼的第二题第三题出了啥问题。。。我自己这边想到的用例没问题
点赞 回复 分享
发布于 2020-08-15 18:11
第一题也是55
点赞 回复 分享
发布于 2020-08-15 18:11
前两题都是91,不知道什么情况
点赞 回复 分享
发布于 2020-08-15 18:11
第一题我的思路是枚举前1/4然后再倒序判断
点赞 回复 分享
发布于 2020-08-15 18:33
真就17个人ak吗,这也tql吧
点赞 回复 分享
发布于 2020-08-15 18:37
没有对输出排序
点赞 回复 分享
发布于 2020-08-15 18:43
为啥有5题
点赞 回复 分享
发布于 2020-08-15 19:14
第五题 装饰。事后想的,未作过多测试,大家帮忙看下。🤗 int calnumkind(int m, int n){ if (m == 1) return n; int sum = 0; for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) { if (i * pow((double)j, m - 1) <= n)//只验证m个数中最大值是否超过n,即i*j^(m-1)<=n? sum=(sum+1)%998244353; else break; } return sum; }
点赞 回复 分享
发布于 2020-08-15 19:42
外卖是什么思路那?
点赞 回复 分享
发布于 2020-08-15 20:36
第二题 import java.util.Scanner; public class t2 {     public static void main(String[] args) {         Scanner scanner=new Scanner(System.in);         String N= scanner.nextLine();         int n=Integer.valueOf(N);         String[][] luxian=new String[n][];         for (int i=0;i<n;i++){             String in=scanner.nextLine();             luxian[i]=in.split(" ");         }         int time=0;         String start=luxian[0][0];         for (int i=0;i<n;i++){             for (int j=0;j<2;j++){                 if (luxian[i][j].equals(start)&&j==1){                     time++;                     if (i<n-1) {                         start = luxian[i + 1][0];                     }                 }             }         }         System.out.print(time);     } }
点赞 回复 分享
发布于 2020-08-15 20:47
第一题55是卡哪个啊 呜呜呜
点赞 回复 分享
发布于 2020-08-15 21:40
连蒙带猜,摸爬滚打。。。。。。。没词了
点赞 回复 分享
发布于 2020-08-15 21:42
勉强这样过了 public static void nums(int n) { if(n<8712) { System.out.println(0); return ; } if (n>=8712 && n<=10000) { System.out.println(1); System.out.println("2178 8712"); return ; } int max = n/4; LinkedList<String> res = new LinkedList<String>(); res.add("2178 8712"); for(int i=10000; i<max; i++) { int flag = i*4; String a = String.valueOf(i); String b = String.valueOf(flag); if(isEq(a, b)) { res.add(a+" "+b); } } System.out.println(res.size()); for (String s : res) { System.out.println(s); } return ; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); nums(n); } public static boolean isEq(String a, String b) { if(a.length() != b.length()) { return false;} for(int i=0; i<a.length(); i++) { if(a.charAt(i) != b.charAt(a.length()-1-i)) { return false; } } return true; }
点赞 回复 分享
发布于 2020-08-15 21:46

相关推荐

Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
评论
5
9
分享
牛客网
牛客企业服务