上一页 1 2 3 4 5 6 7 8 9 10 ··· 17 下一页

zoj 5194 Singles' Day

摘要: 题目地址:zoj5194题目大意: 给你b, n, 问以b为进制,n位1111.....排成的数是不是素数。一开始不知道怎么判断“感觉这么大的数”,额,直接先打出来试一下看看long long 够不够存嘛。发现只有16 16这一组超过范围了。那么这一组或者是素数或者不是 交两发试一下 或者用BigInteger算一下就好了。代码:#include#includeusing namespace std;typedef long long inta;bool is_prime(inta n){ for(int i=2;i>b>>n) { if(judge[b][n]... 阅读全文
posted @ 2014-03-02 16:29 814jingqi的ACM 阅读(107) 评论(0) 推荐(0) 编辑

codeforces#232_div2_D On Sum of Fractions

摘要: 题目地址:cf#232_div2_D题目大意:u(n)是不超过n的最大素数,v(n)是大于n的最小素数。 然后求一个和。额,sb了试几个数就会发现就是列项求和。 然后对n是否是素数判断一下就可以了。注意两个10^9 的数相乘会爆int ,要用long long 存储代码:#include#includeusing namespace std;int is_prime(long long n){ for(int i=2;i1;i--) { if(is_prime(i)) return i; } return 2;}int main(){ int c... 阅读全文
posted @ 2014-03-02 02:02 814jingqi的ACM 阅读(92) 评论(0) 推荐(0) 编辑

codeforces#232_div2_C On Number of Decompositions into Multipliers 数论 组合计数

摘要: 题目地址:cf#232#div2#c题目大意:给定正整数n,然后给你n个数,我们只需要这n个数的乘积,然后问可以分解成多少种n个数的乘积形式。实际上就是先进行素因数分解,然后分配这些指数到n各地方去,即是n元不定方程的非负整数解问题。然后就是组合数打表。 用map进行指数统计。其中素数表只用打到10 ^5 到10^6 不超时但是很浪费代码:#include#include#include#includeusing namespace std;const int mod=1000000007;int p[1000005];vector prime;void make_prime(){ ... 阅读全文
posted @ 2014-03-01 16:44 814jingqi的ACM 阅读(101) 评论(0) 推荐(0) 编辑

codeforces#232_div2_B On Corruption and Numbers 多元不定方程非负整数解

摘要: 题目地址:cf#232#div2#B题目大意:告诉你l,r,你现在有l,l+1,l+2.....r 这么多种面值的钱,每种面值的钱有很无数张,问你是否可以表示出给定的n这么大的面值。初一看是一个不定方程的非负整数解是都有解问题 。 经过@eyelids的提示,只需要找到一个整数x,使得n落入【lx,rx】 这个区间就可以了。这里详细说一下,一旦找到了x,那么我们先取出x枚面值为l的硬币,然后逐步调整,每次改变当前面值最小的的硬币+1,这样,只要没有全部是r,总能继续调整,于是区间【lx,rx】上的数全部被连续表示了。 所以这样就可以调整出一种表示方式。反之,如果找到了一种表示方式,取出硬币数量 阅读全文
posted @ 2014-02-28 16:05 814jingqi的ACM 阅读(108) 评论(0) 推荐(0) 编辑

hdu 2553 N皇后问题 搜索 回溯法

摘要: 题目地址:hdu 2553直接小白书上面的回溯法 但是不知道有多少组数据 所以打一个表~代码:#includeusing namespace std;int C[10];int n;int tot=0;int ans[10];void dfs(int cur){ if(cur==n) tot++; else for(int i=0;i>n) { if(n==0) break; cout<<ans[n]<<endl; } } 阅读全文
posted @ 2014-02-26 18:16 814jingqi的ACM 阅读(87) 评论(0) 推荐(0) 编辑

zoj 1089 Lotto

摘要: 题目地址:zoj 1089题目:就是生成组合。用dfs来写, 其中“相邻的边”实际上就是每次可以选择把某一位放入输出组中,也可以选择不放进去。 形成一“路径选择二叉树”。搜到了一条路径就“return” 来回溯cnt-- 就是把当前节点pass掉了~代码:#include#includeusing namespace std;int p[13];//int vis[13];int k;int cnt=0;int pout[13];void dfs(int cur){ if(cnt==6) { for(int i=0;i=k) return ; pout[cnt+... 阅读全文
posted @ 2014-02-26 03:24 814jingqi的ACM 阅读(106) 评论(0) 推荐(0) 编辑

codeforces#231_div2_B Very Beautiful Number 高精度枚举

摘要: 题目地址:cf/394/B题目大意:给定p ,x 求U一个p位数 ,使得把最后一位移到最前面以后,这个数恰好变为原来的x倍。先想了一种解决方案,列一个不定方程。 设最后一位为b 这个数是a 那么就有方程 (a-b)/10+b*10^p=x*a; 这样只需要枚举最后一位就可以了~解出来a后再返回去带进去是不是对的~~ (因为有可能不整除近似计算了) 用JAVA写的 在第18个案例上tle了import java.io.*;import java.util.*;import java.math.*;public class Main { public static boole... 阅读全文
posted @ 2014-02-26 02:12 814jingqi的ACM 阅读(106) 评论(0) 推荐(0) 编辑

poj 3126 Prime Path bfs求最短路

摘要: 题目地址:poj 3126题目大意: 每次只允许变动一位 求最少变动多少次可以把一个四位素数变为另一个四位素数。还是直接bfs求最短路,每个素数是一个节点,判断是否相邻用枚举的方法,分别枚举个十百千位。 记得layer[next] = layer[cur]+1; 所以取出每一位的时候要用cur的副本代码:#include#include#include#includeusing namespace std;int vis[10000];int p[10000];int layer[10000];void pre(){ p[0]=1; p[1]=1; for(int i... 阅读全文
posted @ 2014-02-25 00:55 814jingqi的ACM 阅读(110) 评论(0) 推荐(0) 编辑

poj 3623 Best Cow Line, Gold 暴力枚举

摘要: 题目地址:poj 3623题目大意:可以从串的两端选取,求尽可能字典序小的串直接暴力 ,关键是两端的字符相同的情形,这个时候要用快排那样的扫描方法。 一旦扫到了head 和tail 相遇甚至是穿过了还是没有找到不同的,这说明是对称的,随便先移除前面 后面 都行。再就是注意一下输出 每80个换行 而且最后一行如果不是刚换过行了还是要换行代码:#include#include#includeusing namespace std;char s[30005];int main(){ int n; cin>>n; char ch; for(int i... 阅读全文
posted @ 2014-02-24 16:58 814jingqi的ACM 阅读(115) 评论(0) 推荐(0) 编辑

poj 3278 Catch That Cow bfs求最短路径

摘要: 最近练习一组搜索题题目地址:poj 3278题目大意: 给你一个数n 你可以+1,-1,*2,怎么用最少的步骤数达到给定的k,如果没有这样的方案输出-1;用图论的理论搜索出一条路径即可先看代码:#include#include#include#includeusing namespace std;#define max 100005int cnt[max];int visit[max];int n,k;queue q;int bfs(){ int cur,next; cnt[n]=0; visit[n]=1; q.push(n); cur=n; ... 阅读全文
posted @ 2014-02-24 15:17 814jingqi的ACM 阅读(122) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 17 下一页