~
2026-07-24 16:50:01
发布于:四川
#include<bits/stdc++.h>
using namespace std;
int n,k,x;
int a[100000];
void dfs(int now){
if(now==n+1){
cout<<endl;
return ;
}
for(int i=1;i<=k;i++){
a[now]=i;
dfs(x+1);
}
}
int main(){
cin>>n>>k;
dfs(1);
}
#include<bits/stdc++.h>
using namespace std;
int n;
int cnt;
int vis[20];
bool check(int x,int y){
for(int i=1;i<=x-1;i++){
if(vis[i]y) return false;
if(x-yi-vis[i]) return false;
if(x+yi+vis[i]) return false;
}
return true;
}
void dfs(int now){
if(nown+1){
cnt++;
if(cnt<=3){
for(int i=1;i<=n;i++)
cout<<endl;
}
return;
}
for(int i=1;i<=n;i++){
if(check(now,i)){
vis[now]=i;
dfs(now+1);
vis[now]=0;
}
}
}
int main(){
cin>>n;
dfs(1);
cout<<cnt<<endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int dis[maxn];
void bfs(int st){
memset(dis,-1,sizeof(dis));
queue<int>q;
dis[maxn];
while(!q.empty());
int u=q.front();
q.pop();
for(){
if(dis[v]=-1){
dis[v]=dis[u]+1;
q.push(v);
}
}
}
int main(){
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
int s,t;
bool vis[maxn];
int dis[maxn];
void bfs(){
queue<int >q;
q.push(s);
vis[s]=1;
dis[s]=0;
while(!q.empty()){
int u=q.front();
q.pop();
if(u==t){
cout<<dis[u]<<endl;
return ;
}
int a=u*2;
int b=u-1;
int c=u+1;
if(a<maxn&&!vis[a]){
q.push(a);
dis[a]=dis[u]+1;
vis[a]=1;
}
if(b>=0&&!vis[b]){
q.push(b);
dis[b]=dis[u]+1;
vis[b]=1;
}
if(c<maxn&&!vis[c]){
q.push(c);
dis[c]=dis[u]+1;
vis[c]=1;
}
}
}
int main(){
cin>>s>>t;
bfs();
return 0;
}
//dp[i]表示以数组a的第i个元素为末尾的连续子段所能得到的最大和。
#include<iostream>
using namespace std;
typedef long long ll;
const int maxn=2e5+5;
ll a[maxn],dp[maxn];
int main(){
//dp[i]表示以数组a的第i个元素为末尾的连续子段所能得到的最大和。
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
ll mx=-1e18;
for(register int i=1;i<=n;i++){
dp[i]=max(dp[i-1]+a[i],a[i]);
mx=max(mx,dp[i]);
}
cout<<mx<<endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N = 1010; // 定义最大数据范围
int dp[N], a[N]; // dp数组:dp[i]表示以a[i]结尾的最长上升子序列长度
int main() {
int n; // 序列长度
cin >> n;
// 输入序列,下标从1开始
for(int i = 1; i <= n; i++) {
cin >> a[i];
}
// 动态规划求解最长上升子序列
for(int i = 1; i <= n; i++) {
dp[i] = 1; // 初始化为1,每个元素本身构成长度为1的子序列
for(int j = 1; j < i; j++) { // 检查前面所有元素
if(a[i]>a[j]) { // 如果当前元素大于前面的元素
dp[i]=max(dp[i],dp[j]+1); // 更新dp值
}
}
}
// 找出dp数组中的最大值
int ans = 0;
for(int i = 1; i <= n; i++) {
ans=max(ans,dp[i]);
}
cout << ans; // 输出结果
return 0;
}
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll x;
cin>>x;
ll ans=0,n=x;
while(n!=0){
n/=10;
}
if(n%10012||x%120){
cout<<"YE5";
}else{
cout<<"N0";
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n,m,a,b=0;
cin>>n;
m=n;
while(m!=0)
{
if(am%100)
{
b=1;
}
m=m/10;
}
if(n%120)
{
b=1;
}
if(b==0)
{
cout<<"N0";
}else{
cout<<"YE5";
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int dp[maxn],a[maxn];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
dp[i]=1;
for(int j=1;j<i;j++){
if(a[i]>a[j]){
dp[i]=max(dp[i],dp[j]+1);
}
}
}
int ans=0;
for(int i=1;i<=n;i++){
ans=max(ans,dp[i]);
}
cout<<ans;
return 0;
}
这里空空如也



















有帮助,赞一个