摘要:
题意是找到一个最小的数,使得这个数的各位的乘积等于n,首先小于10的数肯定是他本身了。这里不得不拜服knowledgetime大神,从9到2找到这8个数字作为n的因子可以出现几次,然后从小到大依次输出。#include<cstdio>#include<cstdlib>#include<cstring>int main(){ int a[10]; int n, T; scanf( "%d", &T); while( T --) { scanf( "%d", &n); if( n < 10){ pri 阅读全文
摘要:
因为最终都会满足每个人的要求。所以我们可以当作每个居民与他的邻居进行交易,将每次的交易额计算出来相加即可。#include<cstdio>#include<cstdlib>#define MAXN 100010int a[MAXN];long long min, w;int n;int main(){ while( scanf( "%d", &n), n) { for( int i = 0; i < n; i ++) scanf( "%d", &a[i]); min = w = 0; for( int i = 阅读全文
摘要:
一道解方程的题,给定区间0到1.如果f(0) * f(1)大于零代表这个区间内所有的x对应的y值都在y轴的一侧,也就是无解。然后用二分的方法解方程。注意变量都要定义成double。#include<cstdio>#include<cstdlib>#include<cmath>const double T = 10e-8;double p, q, r, s, t, u;double res( double x){ return p*exp(-x) + q*sin(x) + r*cos(x) + s*tan(x) + t*x*x + u;}int main(){ 阅读全文
摘要:
一个整数n,求它的一个序列,这个序列的要求是其中任何一个子序列都不能是等差序列。枚举必然超时,然后想了半个小时没有任何想法,就参考了七里 大神的思路,用分治法将序列中处于奇偶位置的数字分组,开始分出来的是等差2的序列,然后再在奇偶序列中分组,最终得出的序列就是符合要求的序列中的一个。暂时没有更好的想法。#include<cstdio>#include<cstring>#include<cstdlib>#define MAXN 10010int a[MAXN], b[MAXN];int n;void dvide( int x, int y){ int i, j 阅读全文