C++递推算法

位数问题

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
void f(int);
int a[100][100];
int b[100][100];
int n;
int main()
{
	cin>>n;
	long long x=0;
	for(int i=1;i<=n;i++){
		x=x*10;
	}
	long long y=0;
	long long t=x;
	for(int i=1;i<=n;i++){
		y=y+t*9;
		t=t/10;
	}
	int sum=0;
	int summ=0;
	int j;
	for(int i=x;i<=y;i++){
		t=i;
		while(t!=0){
			j=t%10;
			if(j==3){
				sum++;
			}
			t=t/10;
		}
		if(sum%2==0){
			summ++;
		}
		sum=0;
	}
	cout<<summ%12345;
	return 0;
}
void f(int n){
	
}

山区建小学

移动路线

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
void f(int);
int a[100][100];
int n;
int main()
{
	int m;
	cin>>m>>n;
	a[1][1]=0;
	for(int i=1;i<=m;i++){
		a[i][1]=1;
	}
	for(int i=1;i<=n;i++){
		a[1][i]=1;
	}
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;i++){
			a[i][j]=a[i+1][j]+a[i][j-1];
		}
	}
	cout<<a[m][n];
	return 0;
}
void f(int n){
	
}

判断整除

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
void f(int);
bool a[10010][110];
int b[10010];
int n;
int main()
{
	int k;
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>b[i];
		b[i]=b[i]%k;
	}
	a[0][0]=true;
	for(int i=1;i<=n;i++){
		for(int j=0;i<k;j++){
			if(a[i-1][j]==true){
				a[i][(j+b[i])%k]=true;
				a[i][(j-b[i]+k)%k]=true;
			}
		}
	}
	if(a[n][0]==true) cout<<"YES";
	else cout<<"NO";
	cout<<endl;
	return 0;
}
void f(int n){
	
}
相关推荐
哥不想学算法7 小时前
【C++】字符串字面量拼接
开发语言·c++
海石7 小时前
1500分的题目,确实有实力,不过还是我略胜一筹
算法·leetcode
海石7 小时前
【记忆化搜索】条条大路通AC,走好适合你的那一条,走到后再考虑走得快
算法·leetcode
Jerry9 小时前
LeetCode 151. 反转字符串中的单词
算法
gugucoding9 小时前
31. 【C语言】堆栈与队列的实现
c语言·开发语言·数据结构·链表
ChaoZiLL11 小时前
我的数据结构3——链表(link list)
数据结构·链表
a11177611 小时前
LM 算法迭代过程动画演示(SLAM)
算法
头茬韭菜11 小时前
Context 的生死抉择:四层压缩、截断算法与 Session Memory
算法·ai
Jerry12 小时前
LeetCode 541. 反转字符串 II
算法
Jerry12 小时前
LeetCode 344. 反转字符串
算法