求助dalao

P1149 [NOIP2008 提高组] 火柴棒等式

希更展?使Markdown
by muyang_233 @ 2019-09-01 12:07:03


#include<bits/stdc++.h> using namespace std; int h[2001]={6,2,5,5,4,5,6,3,7,6}; int opt[4],ans,n; void dfs(int step,int num) { if(step==3) { int sum=opt[1]+opt[2]; if(h[sum]==n-num) ans++; return ; } for(int i=0;i<=999;i++) if(n-num>=h[i]) { opt[step]=i; dfs(step+1,num+h[i]); } } int main() { for(int i=10;i<=1999;i++) { h[i]=0; int temp=i; while(temp>0) { h[i]+=h[temp%10]; temp/=10; } } cin>>n; n-=4; dfs(1,0); cout<<ans; return 0; }
by hanyufei @ 2019-09-01 12:45:28


```cpp #include<iostream> #include<cstring> using namespace std; int main() { int a[10]={6,2,5,5,4,5,6,3,7,6}; int b[2223]; int i,i1,bsum=0;int x,y,n,num=0; memset(b,0,sizeof(b)); cin>>n; b[0]=a[0]; for(i=1;i<=2222;i++) { i1=i; while(i1!=0) { bsum+=a[i1%10]; i1/=10; } b[i]=bsum; bsum=0; } for(x=0;x<=1111;x++) { for(y=0;y<=1111;y++) { if(b[x]+b[y]>=n-4) continue; else { if(b[x]+b[y]+b[x+y]==n-4) { num++; } } } } cout<<num; return 0; } ```
by 反手for循环 @ 2019-09-01 12:49:32


请不要使用Markdown来强调头文件的重要性。
by Smile_Cindy @ 2019-09-01 13:24:01


|