一个菜鸡的洛谷打卡 day1
题目描述
有一个n*m方格的棋盘,求其方格包含多少正方形、长方形
输入格式
n,m因为原来数据太弱,现规定m小于等于5000,n小于等于5000(原来是100,100)
输出格式
方格包含多少正方形、长方形
题解
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
long long i,j;
long long m,n,min;
long long z=0,c=0,all=0; z 正方形 c 长方形 all 所有的矩形
cin>>n>>m;
if(m>n)
min=n;
else
min=m;
for(i=0;i<min;i++)
{
z=z+(m-i)*(n-i);
}
all=((1+m)*m/2)*((1+n)*n/2);
c=all-z;
cout<<z<<" "<<c<<endl;
return 0;
}
所有长方形个数: (1 + 2 + 3 + ... + m) * (1 + 2 + 3 + ... + n) 高中数学 等差数列求和 梦回当年 哈哈哈哈哈哈
正方形个数; m * n + (m - 1) * (n - 1) + (m - 2) * (n - 2)
+ ..... + (m - x) * (n - x) 。
题目描述
猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 101010 种配料(芥末、孜然等),每种配料可以放 111 到 333 克,任意烤鸡的美味程度为所有配料质量之和。
现在, Hanke 想要知道,如果给你一个美味程度 nnn ,请输出这 101010 种配料的所有搭配方案。
输入格式
一个正整数 nnn,表示美味程度。
输出格式
第一行,方案总数。
第二行至结束,101010 个数,表示每种配料所放的质量,按字典序排列。
如果没有符合要求的方法,就只要在第一行输出一个 000。
输入输出样例
11
10 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1
题解
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,e,f,g,h,i,j,n,x=0;
cin>>n;
for (a=1;a<=3;a++)
{
for (b=1;b<=3;b++)
{
for (c=1;c<=3;c++)
{
for (d=1;d<=3;d++)
{
for (e=1;e<=3;e++)
{
for (f=1;f<=3;f++)
{
for (g=1;g<=3;g++)
{
for(h=1;h<=3;h++)
{
for (i=1;i<=3;i++)
{
for (j=1;j<=3;j++)
{
if (a+b+c+d+e+f+g+h+i+j==n)
x++;
}
}
}
}
}
}
}
}
}
}
cout<<x<<endl;
for (a=1;a<=3;a++)
{
for (b=1;b<=3;b++)
{
for (c=1;c<=3;c++)
{
for (d=1;d<=3;d++)
{
for (e=1;e<=3;e++)
{
for (f=1;f<=3;f++)
{
for (g=1;g<=3;g++)
{
for(h=1;h<=3;h++)
{
for (i=1;i<=3;i++)
{
for (j=1;j<=3;j++)
{
if (a+b+c+d+e+f+g+h+i+j==n)
{
cout<<a<<" ";
cout<<b<<" ";
cout<<c<<" ";
cout<<d<<" ";
cout<<e<<" ";
cout<<f<<" ";
cout<<g<<" ";
cout<<h<<" ";
cout<<i<<" ";
cout<<j<<endl;
}
}
}
}
}
}
}
}
}
}
}
}
哈哈哈哈哈哈哈,简单易懂。以后可能会换种算法写吧,感觉深搜可以解决。

浙公网安备 33010602011771号