美团8.15 笔试统计

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

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


#美团#
全部评论
a了4.18...
1 回复 分享
发布于 2020-08-15 19:21
第五题 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
要注意逆序对中的两个数都要<=n
1 回复 分享
发布于 2020-08-15 18:12
2178的逆序是8712,所以需要n>=8712,才能输出,而不是2178
点赞 回复 分享
发布于 2020-08-18 10:01
有大佬能给我讲一下我第一题的代码应该怎么改吗~ import java.util.*; public class Test {     public static void main(String[] args){         Scanner sc = new Scanner(System.in);         while(sc.hasNext()){             int n = sc.nextInt();             int res = 0;             int count = 0;             ArrayList<String> list = new ArrayList<String>();             for (int i = 0; i <= n; i++){                 int x = i;                 while (x != 0){                     int temp = x%10;                     res = res*10 + temp;                     x /= 10;                 }                 if (res == i*4 && res <= n){                     count++;                     String a = String.valueOf(i);                     String b = String.valueOf(res);                     list.add(a+""+b);                 }             }             System.out.println(count);             for (String s : list){                 System.out.println(s);             }         }     } }
点赞 回复 分享
发布于 2020-08-16 00:30
有大佬给个第4题的思路吗?是网络流吗?
点赞 回复 分享
发布于 2020-08-16 00:18
勉强这样过了 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
连蒙带猜,摸爬滚打。。。。。。。没词了
点赞 回复 分享
发布于 2020-08-15 21:42
第一题55是卡哪个啊 呜呜呜
点赞 回复 分享
发布于 2020-08-15 21:40
第二题 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
外卖是什么思路那?
点赞 回复 分享
发布于 2020-08-15 20:36
第五题 装饰。事后想的,未作过多测试,大家帮忙看下。🤗 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
为啥有5题
点赞 回复 分享
发布于 2020-08-15 19:14
没有对输出排序
点赞 回复 分享
发布于 2020-08-15 18:43
真就17个人ak吗,这也tql吧
点赞 回复 分享
发布于 2020-08-15 18:37
第一题我的思路是枚举前1/4然后再倒序判断
点赞 回复 分享
发布于 2020-08-15 18:33
前两题都是91,不知道什么情况
点赞 回复 分享
发布于 2020-08-15 18:11
第一题也是55
点赞 回复 分享
发布于 2020-08-15 18:11
我第一个全a了后面第二第三题不管怎么调都是9%。。然后第四第五题没时间想了直接print(用例输出)还给了俩18% 我挺懵逼的第二题第三题出了啥问题。。。我自己这边想到的用例没问题
点赞 回复 分享
发布于 2020-08-15 18:11
第一题一直55
点赞 回复 分享
发布于 2020-08-15 18:10

相关推荐

找到实习了&nbsp;给了150一天&nbsp;但是说是低代码&nbsp;值得去吗
码农索隆:是在没实习,可去,待个一两周,不行就润呗
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
5
9
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务