2015蓝桥杯省赛---java---A---9(垒筛子)
生活随笔
收集整理的這篇文章主要介紹了
2015蓝桥杯省赛---java---A---9(垒筛子)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
思路分析
遞歸
會超時
通過30%
代碼實現
package lanqiao;import java.util.Scanner;public class Main {public static int op[]=new int[7];public static int n,m;public static boolean conflict[][]=new boolean[7][7];public static int MOD=1000000007;public static void init(){op[1]=4;op[4]=1;op[2]=5;op[5]=2;op[3]=6;op[6]=3;}public static void main(String[] args) {init();Scanner scanner = new Scanner(System.in);n = scanner.nextInt();m=scanner.nextInt();for (int i = 0; i < m; i++) {int x=scanner.nextInt();int y=scanner.nextInt();conflict[x][y]=true;conflict[y][x]=true;}long ans=0;for (int up = 1; up <= 6; up++) {ans=(ans+4*f(up,n-1))%MOD;}System.out.println(ans);}/*** 上一層定好了朝上的數字為up的情況下,磊好cnt個篩子的方案數* @param up* @param cnt* @return*/public static long f(int up,int cnt){if(cnt==0){return 4;}long ans=0;for (int upp = 1; upp <= 6; upp++) {if(conflict[op[up]][upp]){//上一個篩子求反和此篩子比較,會沖突continue;}ans=(ans+f(upp,cnt-1))%MOD;}return ans;} }總結
以上是生活随笔為你收集整理的2015蓝桥杯省赛---java---A---9(垒筛子)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打火机加油正确方法 怎么给打火机加油
- 下一篇: 数字奇数和偶数的判断