来个人帮我看看……

  1. 因式分解
    XJOI - 题目ID:8740100分
    最新提交:
    Wrong Answer
    12 分
    历史最高:
    Time Limit Exceeded
    62 分
    时间限制: 1000ms
    空间限制: 262144kB
    题目描述
    题目描述
    将大于的自然数

n 进行因式分解
编一程序,对任意的自然数
1<n≤2000000000求
n 的所有形式不同的因式分解方案总数。

n=12,共有 8 种分解方案,他们分别是:

12=12

12=6×2

12=4×3

12=3×4

12=3×2×2

12=2×6

12=2×3×2

12=2×2×3

输入格式
一个整数
n

输出格式
一个整数
m,代表不同的因式分解的方案总数。

样例数据
input
12
output
8

数据规模与约定
时间限制:
1s

空间限制:
256MB
TLE62:

#include<bits/stdc++.h>
using namespace std;
int ans=0,n;
void dfs(int x){
	if(x==1){
		ans++;
		cout<<endl;
		return ;
	}
	for(int i=2;i<=x;i++){
		if(x%i==0){
		//	cout<<x/i<<" ";
			dfs(x/i);
		}
	}
}
int main(){
	cin>>n;
	dfs(n);
	cout<<ans<<endl;
}

WA12:

#include<bits/stdc++.h>
using namespace std;
int ans=0,n;
bool f(int m){
	if(m==2){
		return true;
	}
	for(int i=2;i*i<=m;i++){
		if(m%i==0) return false;
	}
	return true;
}
void dfs(int x){
//	cout<<x<<" ";
	ans++;
	if(f(x)){
		ans++;
	//	cout<<endl;
		return ;
	}
	for(int i=2;i*i<=x;i++){
		if(x%i==0){
			dfs(x/i);
		}
	}
}
int main(){
	cin>>n;
	dfs(n);
	cout<<ans+1<<endl;
}
1 个赞

给你的代码没A吗

1 个赞


开心 :upside_down_face:

这题要把我折磨死了,换一题:

17. 宝藏迷宫Ⅱ

XJOI - 题目ID:9863100分

最新提交:0 分

历史最高:0 分

时间限制: 1000ms

空间限制: 262144kB

题目描述

恭喜你通过了迷宫第一层,没想到迷宫还有第二层,你暂时还回不去,但是里面有更多的宝藏(地图描述同宝藏迷宫Ⅰ)。
由于你通过了迷宫第一层,你获得了一个传奇道具,这个传奇道具允许你通过迷宫的其中一个陷阱(即可通过某个’#')。
现在问你在拥有这个传奇道具(道具仅能使用一次)的情况下,最多可以获得多少宝藏并走出迷宫(从左上角出发到右下角)。

输入格式

第一行包含两个整数n,m,表示迷宫的大小。
接下来的n行,每行包含m个字符,代表迷宫(宝藏入口没有陷阱)。

输出格式

一个整数。代表总共可获得的宝藏价值和,无法到达出口则输出-1

样例

Input 1

5 6


####
2#4##
#
##
##1#

1##

Output 1

3

样例解释

样例解释:
经过陷阱’*'后,从左上角开始,获得宝藏2、宝藏4、宝藏1,共计3个宝藏。

数据范围

1 <= N, M <= 7, 0 <= 宝藏价值 <= 9

image