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 }

原文地址:https://www.cnblogs.com/--HPY-7m/p/11620408.html

时间: 2024-07-30 09:54:30

Resistors in Parallel(找规律+大数)的相关文章

BZOJ1002(找规律+大数)

1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 2427  Solved: 1333 [Submit][Status] Description 给定n(N<=100),编程计算有多少个不同的n轮状病毒. Input 第一行有1个正整数n. Output 将编程计算出的不同的n轮状病毒数输出 Sample Input 3 Sample Output 16 题意:RT 思路:dp[n]表示为n的方案数 打表可知

HDOJ-1041 Computer Transformation(找规律+大数运算)

http://acm.hdu.edu.cn/showproblem.php?pid=1041 有一个初始只有一个1的串 每次都按①0 -> 10;②1 -> 01;这两条规则进行替换 形如:n = 1  1 n = 2  01 n = 3  1001 ... 求经过n步替换之后 串中只含复数个0的连续子串(不难发现,这种子串只能是‘00’)的出现次数 因为0<n<=1000的限制 在最坏情况下(n==1000)串的长度将达到2^1000位 排除了直接模拟上述替换过程的可能 列出前几

UVALive 6270 Edge Case(找规律,大数相加)

转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 找规律,前两个数的和等于后一个数的值: 其实就是大菲波数: 代码如下: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #include<cstdio> #include<cst

Acdream 1210 Chinese Girls&#39; Amusement(大数模板运算 + 找规律)

传送门 Chinese Girls' Amusement Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Statistic Next Problem Problem Description You must have heard that the Chinese culture is quite different from that of Europe or Rus

大数+找规律 ACdream1210 Chinese Girls&#39; Amusement

传送门:点击打开链接 题意:对于n个点围成的圈.从一个点出发,顺时针数K个位置,一直进行这个操作直到回到最初的那个点时,恰好把所有的点都访问了一遍,问最大的K(K<=n/2) 思路:很容易就想到了一种方法,找到K<=n/2,且gcd(K,n)=1,有人是用java从n/2向1去枚举的,感觉好暴力,所以当时不敢这样写 后来发现其实是有规律的,从n=3一直算下去,会得到一个这样的序列1 1 2 1 3 3 4 3 5 5 6 5 7 7 8 7 9 9 10 9..... 很明显以4个为一组,一下

HDU 4919 打表找规律 java大数 map 递归

== oeis: 点击打开链接 瞎了,x.mod(BigInteger.ValueOf(2)).equal( BigInteger.ValueOf(1)) 写成了 x.mod(BigInteger.ValueOf(2)).equal( 1 ) T^T100块没了... import java.math.*; import java.util.*; import static java.lang.System.out; import java.io.*; public class Main { s

vijos - P1447开关灯泡 (大数模板 + 找规律 + 全然数 + python)

P1447开关灯泡 Accepted 标签:CSC WorkGroup III[显示标签] 描写叙述 一个房间里有n盏灯泡.一開始都是熄着的,有1到n个时刻.每一个时刻i,我们会将i的倍数的灯泡改变状态(即原本开着的现将它熄灭,原本熄灭的现将它点亮),问最后有多少盏灯泡是亮着的. 格式 输入格式 一个数n 输出格式 m,表示最后有m盏是亮着的 例子1 例子输入1[复制] 5 例子输出1[复制] 2 限制 1s 提示 范围:40%的数据保证,n<=maxlongint 100%的数据保证,n<=

HDU ACM 1041Computer Transformation(大数模拟+找规律)

分析:大数模拟和找规律. #include<iostream> using namespace std; char f[1001][501]; /* 从下面的步骤中可以看出,下一步的后半部分是前一步的整个串,所以对于后半部分有f[n]=f[n-1]: 从前半部分和整体可以看出,另一部分有f[n]=f[n-1]-1(奇数步),f[n]=f[n-1]+1(偶数步). step0:1 f[0]=0 step1:01 f[1]=0 step2:10 01 f[2]=1 =2*f[1]+1 step3:

vijos - P1447开关灯泡 (大数模板 + 找规律 + 完全数 + python)

P1447开关灯泡 Accepted 标签:CSC WorkGroup III[显示标签] 描述 一个房间里有n盏灯泡,一开始都是熄着的,有1到n个时刻,每个时刻i,我们会将i的倍数的灯泡改变状态(即原本开着的现将它熄灭,原本熄灭的现将它点亮),问最后有多少盏灯泡是亮着的. 格式 输入格式 一个数n 输出格式 m,表示最后有m盏是亮着的 样例1 样例输入1[复制] 5 样例输出1[复制] 2 限制 1s 提示 范围:40%的数据保证,n<=maxlongint 100%的数据保证,n<=10^