2020hdu多校10
程序员文章站
2022-08-19 17:02:00
hdu6879题目分8和3互质可以表示任意 大于 A*B-A-B(13)的数构造#include 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;
}
本文地址:https://blog.csdn.net/qq_43364986/article/details/108782639
上一篇: 小白也能搞定 惠普战66升级内存教程
下一篇: 吃了第一口就不想吃第二口
推荐阅读
-
产业规模10年达1800亿,又一大省出台人工智能发展规划!多地争抢人工智能发展制高点
-
2020牛客多校联赛F题-Fake Maxpolling
-
Win7/Win8/Win10单、多系统一键安装教程 只需30秒!
-
【杭电多校2020】第一场1004.Distinct Sub-palindromes(思维)
-
Hdu多校8-1009 hdu-6863 Isomorphic Strings
-
HDU 多校第五场 Tetrahedron(1001),Paperfolding(1009)
-
小米宣布高硅补锂新型手机电池:同等体积容量多10%、明年量产
-
微信月活用户突破10亿:领先支付宝/QQ 4亿多
-
2018暑期牛客网多校第二场签到题---思维(规律题)
-
杭电多校第二场 1003 HDU-6311 Cover(欧拉回路)