#阿里笔试#
7.30笔试

第一题(通过100%):
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.StreamTokenizer;
import java.util.LinkedList;
public class Main{
    public static void main(String[] args) throws IOException {
        StreamTokenizer st=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
        String str;
        st.nextToken();
        int k=(int)st.nval;
        st.nextToken();
        long n=(long)st.nval;
        n--;

        LinkedList<Long> stack=new LinkedList<>();
        while (n>0){
            stack.addLast(n%9);
            n/=9;
        }

        long ans=0;
        while(!stack.isEmpty()){
            ans*=10;
            if(stack.peekFirst()>=k){
                ans+=stack.pollFirst()+1;
            } else{
                ans+=stack.pollFirst();
            }
        }

        System.out.println(ans);
    }
}

全部评论
发现好像是return (b[1]-b[0])/(b[1]*(b[1]+1))-(a[1]-a[0])/(a[1]*(a[1]+1)); 这里一直是return 0;因为你这里int除法得到的是0,需要转为float;不过思路很强,已经很厉害了~
点赞 回复 分享
发布于 2021-08-04 11:53
第二题(通过0%,神奇): import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.StreamTokenizer; import java.util.Comparator; import java.util.PriorityQueue; public class Main{ public static void main(String[] args) throws IOException { StreamTokenizer st=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); st.nextToken(); int N=(int)st.nval; while(N-->0){ st.nextToken(); int n=(int)st.nval; st.nextToken(); int m=(int)st.nval; PriorityQueue<int[]> queue=new PriorityQueue<>(new Comparator<int[]>() { @Override public int compare(int[] a, int[] b) { return (b[1]-b[0])/(b[1]*(b[1]+1))-(a[1]-a[0])/(a[1]*(a[1]+1)); } }); for(int i=0;i<n;i++){ st.nextToken(); int a=(int)st.nval; st.nextToken(); int b=(int)st.nval; queue.offer(new int[]{a,b}); } for(int i=0;i<m;i++){ int[] arr = queue.poll(); arr[0]++; arr[1]++; queue.offer(arr); } double ans=0;; while (!queue.isEmpty()){ int[] arr = queue.poll(); ans+=(double)arr[0]/arr[1]; } ans/=n; System.out.println(ans); } } }
点赞 回复 分享
发布于 2021-07-30 21:23

相关推荐

04-14 20:10
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务