卡片
#include<iostream>
using namespace std;
int main(){
int a[10]={2021,2021,2021,2021,2021,2021,2021,2021,2021,2021};//每个卡片2021个,直接定义
int i,t;
for(i=1;;i++){
t=i;
if(t<=9){
if(a[t]==0){
goto out;
}
a[t]--;
}
if(t>=10){
while(t>0){
if(a[t%10]==0){
goto out;
}
a[t%10]--;
t/=10;
}
}
}
out:
cout<<i-1;
return 0;
}
物品摆放
#include<iostream>
using
namespace
std;
#include<math.h>
const
int
N=1e6+10;
long
long
int
a[N];//定义全局变量,因为测量的数据比较大,long long 类型
int
main()
{
int
i,j,k,p=0,c=0,m=0,g=0,v=0;
long
long
int
n=2021041820210418;
int
t=
sqrt
(n);//对这个大数取个根号,数据更小一点
for
(i=1;i<=t;i++){
if
(n%i==0){
a[p]=i;//将所有他可以整除的数放在数组里
p++;
a[p]=n/i;
p++;
}
}
for
(i=0;i<p;i++){
for
(c=0;c<p;c++){
for
(g=0;g<p;g++){
if
(a[i]*a[c]*a[g]==n){//直接暴力三重循环
m++;
}
}
}
}
cout<<m;
return
0;
}
最小路径
#include<iostream>//Dijkstra模型
#include<cstring> //memset()原型 ,是所有数据为0;
#include<math.h>
using namespace std;
const int N=3000;
const int INF=0x3f; //这里可以理解为无穷大
int graph[N][N]; //邻接矩阵存储图
int dist[N]; //记录最短路径值
bool visited[N]; //判断节点是否访问
int gcd(int a,int b){ //最大公约数
return b==0?a:gcd(b,a%b);
}
int lem(int a,int b){ //最小公倍数
return a*b/gcd(a,b);
}
int dijkstra(int n){
//初始化
memset(dist,INF,sizeof(dist));
memset(visited,false,sizeof(visited));
dist[1]=0;
for(int i=1;i<=n;++i){
int k=-1;
for(int j=1;j<=n;++j){ //获取距离源点最近点
if(!visited[j]&&(k==-1||dist[j]<dist[k])){
k=j;
}
}
visited[k]=true;
for(int j=1;j<=n;++j){
if(dist[k]+graph[k][j]<dist[j]){
dist[j]=dist[k]+graph[k][j];
}
}
}
if(dist[n]==INF) return -1;
return dist[n];
}
int main(){
int n=2021; //节点数
//初始化
memset(graph,INF,sizeof(graph));
//构图
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
if(abs(i-j)<=21){
graph[i][j]=lem(i,j);
}
}
}
//求出最短路径,输出结果
cout<<dijkstra(n)<<endl;
return 0;
}
空间
#include<stdio.h>
int main(){
int t=256*1048576;
printf("%d",t/4);
return 0;
}
时间显示
#include<iostream>
using
namespace
std;
int
main(){
int
n,i;
cin>>n;
long
long
int
a[n];//数据大小比较大
long
long
int
b[n];
for
(i=0;i<n;i++) cin>>a[i];
for
(i=0;i<n;i++){
a[i]/=1000;
b[i]=a[i];//将毫秒装换为秒
if
(a[i]/86400>1) {
a[i]%=86400,b[i]%=86400;//确定小时,分钟,秒
a[i]/=60;b[i]%=60;
}
else
{
a[i]/=60;b[i]%=60;
}
}
for
(i=0;i<n;i++) {
if
(a[i]/60>=10){
if
(a[i]%60>=10&&b[i]>=10) cout<<a[i]/60<<
":"
<<a[i]%60 <<
":"
<<b[i]<<endl;
else
if
(a[i]%60>=10&&b[i]<10)cout<<a[i]/60<<
":"
<<a[i]%60 <<
":"
<<
"0"
<<b[i]<<endl;
else
if
(a[i]%60<10&&b[i]<10)cout<<a[i]/60<<
":"
<<
"0"
<<a[i]%60 <<
":"
<<
"0"
<<b[i]<<endl;
else
if
(a[i]%60<10&&b[i]>=10)cout<<a[i]/60<<
":"
<<
"0"
<<a[i]%60 <<
":"
<<b[i]<<endl;
}
else
if
(a[i]/60<10){
if
(a[i]%60>=10&&b[i]>=10) cout<<
"0"
<<a[i]/60<<
":"
<<a[i]%60 <<
":"
<<b[i]<<endl;
else
if
(a[i]%60<10&&b[i]>=10) cout<<
"0"
<<a[i]/60<<
":"
<<
"0"
<<a[i]%60 <<
":"
<<b[i]<<endl;
else
if
(a[i]%60<10&&b[i]<10)cout<<
"0"
<<a[i]/60<<
":"
<<
"0"
<<a[i]%60 <<
":"
<<
"0"
<<b[i]<<endl;
else
if
(a[i]%60>=10&&b[i]<10)cout<<
"0"
<<a[i]/60<<
":"
<<a[i]%60 <<
":"
<<
"0"
<<b[i]<<endl;//这一坨是判断加不加零的情况
}
}
return
0;
}