蘑菇阵_字符串计数

蘑菇阵

//error 未解之谜!!!!垃圾bug 2022 05 17 一道算法题整整一下午没调试出来,裂开!!!一杯茶,一道题,一个bug调一天...
// write your code here
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int N = sc.nextInt();
            int M = sc.nextInt();
            int k = sc.nextInt();
            double[][] arr = new double[N][M];
            boolean[][] table = new boolean[N][M];
            for(int i = 0;i<k;i++){
                int x = sc.nextInt();
                int y = sc.nextInt();
                table[x-1][y-1] = true;
            }

            //初始化
            arr[0][0] = 1;
            for(int i = 1;i<N;i++){
                //第一列
                if(table[i][0]){
                    //设置该位置概率为0!
                    arr[i][0] = 0;
                    break;//后面的概率都为0!
                }
                arr[i][0] = 0.5;
            }
            for(int i = 1;i<M;i++){
                //第一行!
                if(table[0][i]){
                    //设置该位置概率为0!
                    arr[0][i] = 0;
                    break;//后面的概率都为0!
                }
                arr[0][i] = 0.5;
            }
            for(int i = 1;i<N;i++){
                for(int j = 1;j<M;j++){
                    if(table[i][j]){//蘑菇位置!
                        arr[i][j] = 0;
                        continue;
                    }
                    if(i==N-1&&j==M-1){//最后一个位置!
                        //上面坐标只能往下走
                        //左边坐标只能往右走
                        arr[i][j] =  arr[i-1][j] + arr[i][j-1];
                        continue;
                    }
//                    if(i==N-1){//最后一行!
//                        //考虑边界!
//                        //说明左边位置只能往右走!否者越界!
//                       arr[i][j] =  0.5*arr[i-1][j] + arr[i][j-1];
//                       continue;
//                    }
//                    if(j==M-1) {//最后一列!
//                        //说明这里上面的位置坐标只能往下走!
//                        arr[i][j] = arr[i - 1][j] + 0.5 * arr[i][j - 1];
//                        continue;
//                    }
//                  //这里的前一个路径点可以有2种选择所以要乘0.5!
                // arr[i][j] = 0.5*arr[i-1][j] + 0.5*arr[i][j-1];
                    arr[i][j] = (i==N-1?1.0:0.5)*arr[i][j-1] +
                            (j==M-1?1.0:0.5)*arr[i-1][j];
                }
            }
            System.out.println(arr[N-1][M-1]);
        }
    }
}
//正确答案!
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int N = sc.nextInt();
            int M = sc.nextInt();
            int k = sc.nextInt();
            double[][] arr = new double[N+1][M+1];
            boolean[][] table = new boolean[N+1][M+1];
            for(int i = 0;i<k;i++){
                int x = sc.nextInt();
                int y = sc.nextInt();
                table[x][y] = true;
            }

            //初始化
            arr[1][1] = 1.0;
            for(int i = 1;i<=N;i++){
                for(int j = 1;j<=M;j++){
                    if(i==1&&j==1)continue;
                    if(table[i][j]){//蘑菇位置!
                        arr[i][j] = 0;
                        continue;
                    }
                    arr[i][j] = (i==N?1.0:0.5)*arr[i][j-1] +
                            (j==M?1.0:0.5)*arr[i-1][j];
                }
            }
            System.out.printf("%.2f\n",arr[N][M]);
        }
    }
}

总结:

动态规划问题老老实实多开辟一行一列吧!

害,,,还有这里的概率要会分析!

字符串计数

字符串计数

image-202205180****1052

image-202205180****3072

// write your code here
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            //一组测试用例!
            StringBuffer str1 = new StringBuffer(sc.next());
            StringBuffer str2 = new StringBuffer(sc.next());
            int len1 = sc.nextInt();
            int len2 = sc.nextInt();
            //将str1 和 str2 补位到len2
            for(int i = str1.length();i<len2;i++){//str1 补 a
                str1.append('a');
            }
             for(int i = str2.length();i<len2;i++){//str2 补'z'+1
                str2.append('z'+1);
            }
            //用于保存字符串相减后每位的差值!
            //便于计算每个长度的个数
            int[] array = new int[len2];
            for(int i = 0;i<len2;i++){
                array[i] = str2.charAt(i) - str1.charAt(i);
            }
            //进行求和!
            int result = 0;
            for(int i = len1;i<=len2;i++){//长度[len1,len2]
                for(int j = 0;j<i;j++){ //计算每一个长度的个数!
                    //进行多少位的相减!
                    result += array[j]*Math.pow(26,i-j-1);// 1位 26^0 2位 26^1 ....
                }
            }
            System.out.println((result-1)%1000007); //减去str2 重复计算!
        }
    }
}
#笔试#
全部评论
了解字符串计数的知识
点赞 回复 分享
发布于 2022-08-27 13:09 河南

相关推荐

03-19 18:27
已编辑
门头沟学院 C++
26学院本太难了,很多公司机筛就给我刷了。机会都难拿到如果是简历存在问题也欢迎拷打————————————————————分割线——————————————————————2026.3.4更新:发完贴之后,时不时投递又收到了不少的笔试/面试邀请。主要是之前投递简历出去之后基本上都是沉默状态,年后好转了不少timeline:2026.01.21&nbsp;文远知行笔试,半年多没刷算法题&nbsp;-&gt;挂&nbsp;(后续HR说春招可以重新安排笔试)2026.2.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;小鹏汇天&nbsp;技术一面,第二周收到结果&nbsp;-&gt;挂2026.2.12&nbsp;&nbsp;&nbsp;大众Cariad代招&nbsp;技术二面&nbsp;-&gt;Offer2026.2.28&nbsp;&nbsp;&nbsp;多益网络技术面试,由于风评太差,一直在犹豫要不要接面试&nbsp;-&gt;推迟-----------分割线-----------2026.3&nbsp;月前的某一天,临时去电网报名了二批计算机岗位的笔试2026.3.6&nbsp;从上家公司实习离职,氛围最好的一家公司,leader&nbsp;说可以帮忙转正,但是流程太长,而且我们部门据说只有一个&nbsp;hc,更想要研究生,我很有可能是会被签外包公司在这里干活,就离职了。2026.3.9&nbsp;入职新公司,大众Cariad&nbsp;以外部公司的身份进组,项目组签了三年,后续三年应该都可以在这里呆,不知道有没有希望原地跳槽。2026.3.10&nbsp;电网考试居然说我通过资格审查了,短信约我去参加资格审查,请假一天,买了&nbsp;12&nbsp;号晚上的机票回成都2026.3.15&nbsp;参加国家电网三新计算机类的笔试2026.3.17&nbsp;电网出成绩了,感觉很低。觉得已经🈚️了2026.3.18&nbsp;收到电网面试通知,通知&nbsp;3.22-3.25&nbsp;这个时间去面试,我的岗位只招&nbsp;1&nbsp;个人。据说面试只有&nbsp;2-3&nbsp;人,不知道能不能成功
点赞 评论 收藏
分享
03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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