c/c++语言开发共享2020hdu多校10

hdu6879题目分8和3互质可以表示任意 大于 A*B-A-B(13)的数构造#include <bits/stdc++.h>using namespace std;typedef long long ll;void init(){}void solve(){ int S; int r,c; cin>>S; if(S<=24) { r=S+1; c=1; co

hdu6879
题目
分8和3互质可以表示任意 大于 A*B-A-B(13)的数
构造

#include <bits/stdc++.h> using namespace std; typedef long long  ll;  void init() {  } void solve() {     int S;     int r,c;     cin>>S;     if(S<=24)     {         r=S+1;         c=1;         cout<<r<<" "<<c<<endl;         for(int i=1;i<=r;i++)         {             if(i%2==0)             {                 cout<<"."<<endl;             }             else             {                 cout<<"X"<<endl;             }         }     }     else     {         r=25;         c=25;         cout<<r<<" "<<c<<endl;         int one=S/8;         int two=(S%8)/3;         int yv=(S%8)%3;         one-=yv;         two+=yv*3;         for(int i=1;i<=24;i++)         {             for(int j=1;j<=25;j++)             {                 if(i%2==1||j%2==1)                     cout<<".";                 else if(one>0)                 {                     cout<<"X";                     one--;                 }                 else                     cout<<".";             }             cout<<endl;         }         for(int i=1;i<=25;i++)         {             if(two>0)             {                 cout<<"X";                 two--;             }             else                 cout<<".";         }         cout<<endl;     }  } int main() {     ios::sync_with_stdio(0);     cin.tie(0),cout.tie(0);     int _=1;     cin>>_;     while(_--)     {         init();         solve();     }     return 0; }  

hdu6887
题目

#include <bits/stdc++.h>  using namespace std; struct node {     int res,index;     operator < (const node &B)const{         if(res!=B.res)             return res>B.res;         else             return index<B.index;     } }; node no[105]; int main() {     ios::sync_with_stdio(0);     cin.tie(0),cout.tie(0);     int T;     cin>>T;     while(T--)     {         int n,m,k;         cin>>n>>m>>k;         for(int i=1;i<=n;i++)         {             cin>>no[i].res;             no[i].index=i;         }         if(k==0)         {             for(int i=1;i<=n;i++)             {                 cout<<i;                 if(i!=n)                     cout<<" ";             }                              cout<<"n";         }         else         {             sort(no+1,no+1+n);             for(int i=1;i<=n;i++)             {                 cout<<no[i].index;                 if(i!=n)                     cout<<" ";             }                              cout<<"n";         }     }     return 0; } 

hdu6880
题目
给你0 1 序列 0 表示 前一位比后一位小 1 表示前一位比后一位大
对于 1 0 来说
第一位的值 大于 第二位的值 则 2 1 (1在2右边) 他们的下标就表示他们的值 目前只有一种情况 第三位小于第二位 则 3 在2右边 两种情况 2 1 3 2 3 1
对于1 0 0 1 第四位大 2 1 3 4() 2 3 4 1 2 3 1 4 第五位 小
2 1 3 4(4) 2 3 4 1(3) 2 3 1 4(4) 和为11
明显的状态题 dp
dp[i][j] 表示 目前出现了i个数字 最后出现的数字在第 j位 排列的个数
后一位大 则为0
对于目前的dp[i][j]来说 dp[i+1][j+1—i+1] +=dp[i][j];
1
dp[i+1][1—j]+=dp[i][j];

#include <bits/stdc++.h> using namespace std; typedef long long  ll; const int maxn=5e3+5; const int mod=1e9+7; int dp[maxn]; int a[maxn]; int qian[maxn]; void init() {  } void solve() {     int n;     cin>>n;     for(int i=1;i<=n;i++)         dp[i]=0,qian[i]=1;     dp[1]=1;     qian[0]=0;     for(int i=1;i<n;i++)         cin>>a[i];     for(int i=1;i<n;i++)     {         if(a[i])         {             for(int j=1;j<=i;j++)             {                 dp[j]=(qian[i]-qian[j-1]+mod)%mod;             }         }         else         {             for(int j=1;j<=i+1;j++)             {                 dp[j]=qian[j-1];             }         }         for(int j=1;j<=i+1;j++)         {             qian[j]=(qian[j-1]+dp[j])%mod;         }     }     cout<<qian[n]<<endl; } int main() {     ios::sync_with_stdio(0);     cin.tie(0),cout.tie(0);     int _=1;     cin>>_;     while(_--)     {         init();         solve();     }     return 0; }  

c/c++开发分享2020hdu多校10地址:https://blog.csdn.net/qq_43364986/article/details/108782639

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/597459.html

(0)
上一篇 2021年5月8日
下一篇 2021年5月8日

精彩推荐