Resistors in Parallel(找规律+大数)
题意:https://codeforces.com/group/ikIh7rsWAl/contest/254825/problem/E
给你一个n,计算n / Sigma(1~n)的d(是n的只出现一次的因数)。
思路:
反正就是打表找规律,3组数据也能找规律,你们是真的nb嗷。
import java.math.BigInteger;
import java.util.Scanner; public class Main{
public static void main(String[] args){
Scanner cin=new Scanner(System.in); int T=cin.nextInt();
BigInteger n1=new BigInteger("1");
BigInteger n2=new BigInteger("2");
BigInteger n3=new BigInteger("3");
BigInteger n4=new BigInteger("4");
BigInteger n5=new BigInteger("5");
BigInteger n6=new BigInteger("6");
BigInteger a[]=new BigInteger[104];
a[1]=new BigInteger("2");
a[2]=new BigInteger("3");
a[3]=new BigInteger("5");
a[4]=new BigInteger("7");
a[5]=new BigInteger("11");
a[6]=new BigInteger("13");
a[7]=new BigInteger("17");
a[8]=new BigInteger("19");
a[9]=new BigInteger("23");
a[10]=new BigInteger("29");
a[11]=new BigInteger("31");
a[12]=new BigInteger("37");
a[13]=new BigInteger("41");
a[14]=new BigInteger("43");
a[15]=new BigInteger("47");
a[16]=new BigInteger("53");
a[17]=new BigInteger("59");
a[18]=new BigInteger("61");
a[19]=new BigInteger("67");
a[20]=new BigInteger("71");
a[21]=new BigInteger("73");
a[22]=new BigInteger("79");
a[23]=new BigInteger("83");
a[24]=new BigInteger("89");
a[25]=new BigInteger("97");
a[26]=new BigInteger("101");
a[27]=new BigInteger("103");
a[28]=new BigInteger("107");
a[29]=new BigInteger("109");
a[30]=new BigInteger("113");
a[31]=new BigInteger("127");
a[32]=new BigInteger("131");
a[33]=new BigInteger("137");
a[34]=new BigInteger("139");
a[35]=new BigInteger("149");
a[36]=new BigInteger("151");
a[37]=new BigInteger("157");
a[38]=new BigInteger("163");
a[39]=new BigInteger("167");
a[40]=new BigInteger("173");
a[41]=new BigInteger("179");
a[42]=new BigInteger("181");
a[43]=new BigInteger("191");
a[44]=new BigInteger("193");
a[45]=new BigInteger("197");
a[46]=new BigInteger("199");
a[47]=new BigInteger("211");
a[48]=new BigInteger("223");
a[49]=new BigInteger("227");
a[50]=new BigInteger("229");
a[51]=new BigInteger("233");
a[52]=new BigInteger("239");
a[53]=new BigInteger("241");
a[54]=new BigInteger("251");
a[55]=new BigInteger("257");
a[56]=new BigInteger("263");
a[57]=new BigInteger("269");
a[58]=new BigInteger("271");
a[59]=new BigInteger("277");
a[60]=new BigInteger("281");
a[61]=new BigInteger("283");
a[62]=new BigInteger("293");
a[63]=new BigInteger("307");
a[64]=new BigInteger("311");
a[65]=new BigInteger("313");
a[66]=new BigInteger("317");
a[67]=new BigInteger("331");
a[68]=new BigInteger("337");
a[69]=new BigInteger("347");
a[70]=new BigInteger("349");
a[71]=new BigInteger("353");
a[72]=new BigInteger("359");
a[73]=new BigInteger("367");
a[74]=new BigInteger("373");
a[75]=new BigInteger("379");
a[76]=new BigInteger("383");
a[77]=new BigInteger("389");
a[78]=new BigInteger("397");
a[79]=new BigInteger("401");
a[80]=new BigInteger("409");
a[81]=new BigInteger("419");
a[82]=new BigInteger("421");
a[83]=new BigInteger("431");
a[84]=new BigInteger("433");
a[85]=new BigInteger("439");
a[86]=new BigInteger("443");
a[87]=new BigInteger("449");
a[88]=new BigInteger("457");
a[89]=new BigInteger("461");
a[90]=new BigInteger("463");
a[91]=new BigInteger("467");
a[92]=new BigInteger("479");
a[93]=new BigInteger("487");
a[94]=new BigInteger("491");
a[95]=new BigInteger("499");
a[96]=new BigInteger("503");
a[97]=new BigInteger("509");
a[98]=new BigInteger("521");
a[99]=new BigInteger("523");
a[100]=new BigInteger("541"); for(int i=1;i<=T;++i){
BigInteger N=cin.nextBigInteger();
int flag=N.compareTo(n6);
int cnt=0;
BigInteger A=new BigInteger("1");
BigInteger B=new BigInteger("2");
if(flag==1){
BigInteger start=new BigInteger("6");
int P=3;
for(int j=1;j<=10000;j++) {
start=start.multiply(a[P]);
if(start.compareTo(N)==1)
break;
else {
cnt++;
P++;
}
}
int PP=3;
for(int j=1;j<=cnt;j++) {
BigInteger up=a[PP];
BigInteger ttt=a[PP];
ttt=ttt.add(n1);
BigInteger down=ttt;
A=A.multiply(up);
B=B.multiply(down);
PP++;
}
BigInteger gcd=A.gcd(B);
A=A.divide(gcd);
B=B.divide(gcd);
System.out.println(A+"/"+B);
}
else{
if(N.compareTo(n1)==0)
System.out.println("1/1");
else if(N.compareTo(n2)==0)
System.out.println("2/3");
else if(N.compareTo(n3)==0)
System.out.println("2/3");
else if(N.compareTo(n4)==0)
System.out.println("2/3");
else if(N.compareTo(n5)==0)
System.out.println("2/3");
else if(N.compareTo(n6)==0)
System.out.println("1/2");
}
}
}
}
Resistors in Parallel(找规律+大数)的更多相关文章
- UVA 10254 - The Priest Mathematician (dp | 汉诺塔 | 找规律 | 大数)
本文出自 http://blog.csdn.net/shuangde800 题目点击打开链接 题意: 汉诺塔游戏请看 百度百科 正常的汉诺塔游戏是只有3个柱子,并且如果有n个圆盘,至少需要2^n- ...
- HDOJ-1041 Computer Transformation(找规律+大数运算)
http://acm.hdu.edu.cn/showproblem.php?pid=1041 有一个初始只有一个1的串 每次都按①0 -> 10;②1 -> 01;这两条规则进行替换 形如 ...
- HDU 1041 Computer Transformation(找规律加大数乘)
主要还是找规律,然后大数相乘 #include<stdio.h> #include<string.h> #include<math.h> #include<t ...
- hdu 5047 大数找规律
http://acm.hdu.edu.cn/showproblem.php?pid=5047 找规律 信kuangbin,能AC #include <stdio.h> #include & ...
- vijos - P1447开关灯泡 (大数模板 + 找规律 + 全然数 + python)
P1447开关灯泡 Accepted 标签:CSC WorkGroup III[显示标签] 描写叙述 一个房间里有n盏灯泡.一開始都是熄着的,有1到n个时刻.每一个时刻i,我们会将i的倍数的灯泡改变状 ...
- UVALive 6270 Edge Case(找规律,大数相加)
版权声明:本文为博主原创文章,未经博主同意不得转载. vasttian https://blog.csdn.net/u012860063/article/details/36905379 转载请注明出 ...
- 2018 ACM-ICPC 焦作区域赛 E Resistors in Parallel
Resistors in Parallel Gym - 102028E 吐槽一下,网上搜索的题解一上来都是找规律,对于我这种对数论不敏感的人来说,看这种题解太难受了,找规律不失为一种好做法,但是题解仅 ...
- HDU 4919 Exclusive or (数论 or 打表找规律)
Exclusive or 题目链接: http://acm.hust.edu.cn/vjudge/contest/121336#problem/J Description Given n, find ...
- E - Fibonacci Again(找规律)
逐渐发现找规律的美妙之处啦,真不错,用普通方法解决很久或者很麻烦的问题,找到规律就很方便,算法最主要还是思想 Description There are another kind of Fibonac ...
随机推荐
- 【集训队作业2018】line
DP方程十分简单,考虑前对后贡献即可. \(f_i = \min_{l_i \leq j < i} \left\{ f_j + \left(\max_{j < k \leq i} \lef ...
- Python数据抓取(3) —抓取标题、时间及链接
本次分享,jacky将跟大家分享如何将第一财经文章中的标题.时间以及链接抓取出来 (一)观察元素抓取位置 网页的原始码很复杂,我们必须找到特殊的元素做抽取,怎么找到特殊的元素呢?使用开发者工具检视每篇 ...
- AcWing:240. 食物链(扩展域并查集 or 带边权并查集)
动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形. A吃B, B吃C,C吃A. 现有N个动物,以1-N编号. 每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种. 有人用 ...
- 单调队列优化DP——习题收集
前言 感觉可以用单调队列优化dp的模型还是挺活的,开个随笔记录一些遇到的比较有代表性的模型,断续更新.主要做一个收集整理总结工作. 记录 0x01 POJ - 1821 Fence,比较适合入门的题, ...
- 函数柯里化与偏函数+bind
简单理解: 1,函数柯里化就是把多参数函数分解为多return的单参数函数: 举个例子(伪代码): function func (a, b, c){ return } 柯里化为 function fu ...
- Spring+shiro session与线程池的坑
在java web编程中,经常使用shiro来管理session,也确实好用 shiro来获取session的方式 SecurityUtils.getSubject().getSession() 其中 ...
- Leetcode题目101.对称二叉树(简单)
题目描述: 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null ...
- 【零基础】搞定LAMP(linux、apache、mysql、php)环境安装图文教程(基于centos7)
一.前言 LAMP即:Linux.Apache.Mysql.Php,也就是在linux系统下运行php网站代码,使用的数据库是mysql.web服务软件是apache.之所以存在LAMP这种说法,倒不 ...
- HDU2795线段树入门 简单查询和修改
http://acm.hdu.edu.cn/showproblem.php?pid=2795 #include<iostream> using namespace std; ; int h ...
- LeetCode 122. 买卖股票的最佳时机 II(Best Time to Buy and Sell Stock II)
题目描述 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你 ...