。
试题 A: 九进制转十进制
这个应该都会吧。
。
。
。
答案 1478
试题 B: 顺子日期答案 4
#include
using namespace std;
int main()
{ int cou=0;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
string mam="2022";
for(int i=1;i<13;i++)
{ int day=1;
while(day<=a[i])
{ mam="2022";
if(i<10)
{
mam+='0'+to_string(i);
}else
{
mam+=to_string(i);
}
if(day<10)
{
mam+='0'+to_string(day);
}
else mam+=to_string(day);
for(int j=0;j
试题 C: 刷题统计
#include
using namespace std;
int main()
{ long long a,b,n;
long long rounds;
cin>>a>>b>>n;
rounds=n/(5*a+2*b);
long long rest=n-rounds*(5*a+2*b);
if(rest==0) cout<
试题 D: 修剪灌木
对于每棵树都可以当做开始位置,因为每棵树都能从0开始,则可以向右走或向左走,当走过一个来回时,该树的高度一定最大。
。
如果你花几分钟找找规律,应该可以总结出来。
。
。
毕竟我很菜的。
。
。
。
#include
using namespace std;
int main()
{
int n;
cin>>n;
if(n==1) cout<<1;
else
{
for(int i=1;i<=n;i++)
{
cout<
试题 E: X 进制减法
不会
试题 F: 统计子矩阵暴力大法
#include
using namespace std;
int n,m,k;
int num[501][501];
int sum[501][501];
int sum1[501][501];
int a[501];
int dp[501];
void input(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>num[i][j];
}
}
}
void init_sum() {
memset(sum, 0, sizeof(sum));
for (int j = 1; j <= m; j++) {
for (int i = 1; i <= n; i++) {
sum[i][j] = sum[i - 1][j] + num[i][j];
}
}
}
int cnt(int a[]){
int cnt=0;
int sum=0;
for(int i=1;i<=m;i++){
for(int j=i;j<=m;j++){
sum=0;
for(int k=i;k<=j;k++){
sum+=a[k];
}
if(sum<=k)
cnt++;
}
}
return cnt;
}
int main(){
input();
init_sum();
int count=0;
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
for(int l=1;l<=m;l++){
a[l]=sum[j][l]-sum[i-1][l];
}
count+=cnt(a);
}
}
cout<
试题 G: 积木画
不会
试题 H: 扫雷bfs骗分
#include
using namespace std;
struct inf
{
int x;
int y;
int r;
};
bool isbool[50000];
bool isboom(inf a,inf b)
{
double c=sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
if(a.r>c||fabs(a.r*1.0-c)<=1e-8) return true;
return false;
}
int main()
{ int n,m;
cin>>n>>m;
inf bomb[n];
inf fire[m];
for(int i=0;i>bomb[i].x>>bomb[i].y>>bomb[i].r;
}
for(int i=0;i>fire[i].x>>fire[i].y>>fire[i].r;
}
queue qu;
for(int i=0;i
试题 I: 李白打酒加强版
不会dp,只能靠剪枝苟一苟。
。
还能感觉还能再剪
if(rest-m>1) return
可以控制酒壶中的酒量在一个范围。
这个我试了一下n=30 m=30是可以跑出来的
当然→_→不会设置这么奇怪的数据 额应该不会是0。
。
这个只是测试时间
可以过2^30的计算量.
是指剪过以后 运气好点应该能过60%
using namespace std;
int cou;
void dfs(int n,int m,int rest)
{ if(rest-m>1) return;
if(n<0||m<0) return;
if(n==0&&m==0)
{
if(rest==1) cou++;
return;
}
if(rest==0)
{
return;
}else
{
dfs(n,m-1,rest-1);
dfs(n-1,m,rest*2);
}
}
int main()
{
int n,m;
cin>>n>>m;
dfs(n,m-1,2);
cout<
试题 J: 砍竹子
不会。
。
。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)