Resistors in Parallel(找规律+大数)
Posted --hpy-7m
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Resistors in Parallel(找规律+大数)相关的知识,希望对你有一定的参考价值。
题意:https://codeforces.com/group/ikIh7rsWAl/contest/254825/problem/E
给你一个n,计算n / Sigma(1~n)的d(是n的只出现一次的因数)。
思路:
反正就是打表找规律,3组数据也能找规律,你们是真的nb嗷。
1 import java.math.BigInteger; 2 import java.util.Scanner; 3 4 public class Main 5 public static void main(String[] args) 6 Scanner cin=new Scanner(System.in); 7 8 int T=cin.nextInt(); 9 BigInteger n1=new BigInteger("1"); 10 BigInteger n2=new BigInteger("2"); 11 BigInteger n3=new BigInteger("3"); 12 BigInteger n4=new BigInteger("4"); 13 BigInteger n5=new BigInteger("5"); 14 BigInteger n6=new BigInteger("6"); 15 BigInteger a[]=new BigInteger[104]; 16 a[1]=new BigInteger("2"); 17 a[2]=new BigInteger("3"); 18 a[3]=new BigInteger("5"); 19 a[4]=new BigInteger("7"); 20 a[5]=new BigInteger("11"); 21 a[6]=new BigInteger("13"); 22 a[7]=new BigInteger("17"); 23 a[8]=new BigInteger("19"); 24 a[9]=new BigInteger("23"); 25 a[10]=new BigInteger("29"); 26 a[11]=new BigInteger("31"); 27 a[12]=new BigInteger("37"); 28 a[13]=new BigInteger("41"); 29 a[14]=new BigInteger("43"); 30 a[15]=new BigInteger("47"); 31 a[16]=new BigInteger("53"); 32 a[17]=new BigInteger("59"); 33 a[18]=new BigInteger("61"); 34 a[19]=new BigInteger("67"); 35 a[20]=new BigInteger("71"); 36 a[21]=new BigInteger("73"); 37 a[22]=new BigInteger("79"); 38 a[23]=new BigInteger("83"); 39 a[24]=new BigInteger("89"); 40 a[25]=new BigInteger("97"); 41 a[26]=new BigInteger("101"); 42 a[27]=new BigInteger("103"); 43 a[28]=new BigInteger("107"); 44 a[29]=new BigInteger("109"); 45 a[30]=new BigInteger("113"); 46 a[31]=new BigInteger("127"); 47 a[32]=new BigInteger("131"); 48 a[33]=new BigInteger("137"); 49 a[34]=new BigInteger("139"); 50 a[35]=new BigInteger("149"); 51 a[36]=new BigInteger("151"); 52 a[37]=new BigInteger("157"); 53 a[38]=new BigInteger("163"); 54 a[39]=new BigInteger("167"); 55 a[40]=new BigInteger("173"); 56 a[41]=new BigInteger("179"); 57 a[42]=new BigInteger("181"); 58 a[43]=new BigInteger("191"); 59 a[44]=new BigInteger("193"); 60 a[45]=new BigInteger("197"); 61 a[46]=new BigInteger("199"); 62 a[47]=new BigInteger("211"); 63 a[48]=new BigInteger("223"); 64 a[49]=new BigInteger("227"); 65 a[50]=new BigInteger("229"); 66 a[51]=new BigInteger("233"); 67 a[52]=new BigInteger("239"); 68 a[53]=new BigInteger("241"); 69 a[54]=new BigInteger("251"); 70 a[55]=new BigInteger("257"); 71 a[56]=new BigInteger("263"); 72 a[57]=new BigInteger("269"); 73 a[58]=new BigInteger("271"); 74 a[59]=new BigInteger("277"); 75 a[60]=new BigInteger("281"); 76 a[61]=new BigInteger("283"); 77 a[62]=new BigInteger("293"); 78 a[63]=new BigInteger("307"); 79 a[64]=new BigInteger("311"); 80 a[65]=new BigInteger("313"); 81 a[66]=new BigInteger("317"); 82 a[67]=new BigInteger("331"); 83 a[68]=new BigInteger("337"); 84 a[69]=new BigInteger("347"); 85 a[70]=new BigInteger("349"); 86 a[71]=new BigInteger("353"); 87 a[72]=new BigInteger("359"); 88 a[73]=new BigInteger("367"); 89 a[74]=new BigInteger("373"); 90 a[75]=new BigInteger("379"); 91 a[76]=new BigInteger("383"); 92 a[77]=new BigInteger("389"); 93 a[78]=new BigInteger("397"); 94 a[79]=new BigInteger("401"); 95 a[80]=new BigInteger("409"); 96 a[81]=new BigInteger("419"); 97 a[82]=new BigInteger("421"); 98 a[83]=new BigInteger("431"); 99 a[84]=new BigInteger("433"); 100 a[85]=new BigInteger("439"); 101 a[86]=new BigInteger("443"); 102 a[87]=new BigInteger("449"); 103 a[88]=new BigInteger("457"); 104 a[89]=new BigInteger("461"); 105 a[90]=new BigInteger("463"); 106 a[91]=new BigInteger("467"); 107 a[92]=new BigInteger("479"); 108 a[93]=new BigInteger("487"); 109 a[94]=new BigInteger("491"); 110 a[95]=new BigInteger("499"); 111 a[96]=new BigInteger("503"); 112 a[97]=new BigInteger("509"); 113 a[98]=new BigInteger("521"); 114 a[99]=new BigInteger("523"); 115 a[100]=new BigInteger("541"); 116 117 for(int i=1;i<=T;++i) 118 BigInteger N=cin.nextBigInteger(); 119 int flag=N.compareTo(n6); 120 int cnt=0; 121 BigInteger A=new BigInteger("1"); 122 BigInteger B=new BigInteger("2"); 123 if(flag==1) 124 BigInteger start=new BigInteger("6"); 125 int P=3; 126 for(int j=1;j<=10000;j++) 127 start=start.multiply(a[P]); 128 if(start.compareTo(N)==1) 129 break; 130 else 131 cnt++; 132 P++; 133 134 135 int PP=3; 136 for(int j=1;j<=cnt;j++) 137 BigInteger up=a[PP]; 138 BigInteger ttt=a[PP]; 139 ttt=ttt.add(n1); 140 BigInteger down=ttt; 141 A=A.multiply(up); 142 B=B.multiply(down); 143 PP++; 144 145 BigInteger gcd=A.gcd(B); 146 A=A.divide(gcd); 147 B=B.divide(gcd); 148 System.out.println(A+"/"+B); 149 150 else 151 if(N.compareTo(n1)==0) 152 System.out.println("1/1"); 153 else if(N.compareTo(n2)==0) 154 System.out.println("2/3"); 155 else if(N.compareTo(n3)==0) 156 System.out.println("2/3"); 157 else if(N.compareTo(n4)==0) 158 System.out.println("2/3"); 159 else if(N.compareTo(n5)==0) 160 System.out.println("2/3"); 161 else if(N.compareTo(n6)==0) 162 System.out.println("1/2"); 163 164 165 166
以上是关于Resistors in Parallel(找规律+大数)的主要内容,如果未能解决你的问题,请参考以下文章
2018ACM-ICPC焦作站E题Resistors in Parallel
BC - Zball in Tina Town (质数 + 找规律)
HDU 1847 Good Luck in CET-4 Everybody!(博弈找规律)
2020ICPC昆明 J.Parallel Sort(思维,规律)