【BZOJ】【P1258】【CQOI2007】【三角形tri】【题解】【乱搞】
来源:互联网 发布:金蝶进销存软件多少钱 编辑:程序博客网 时间:2024/06/06 13:58
传送门: www.lydsy.com/JudgeOnline/problem.php?id=1258
美妙的分形有递归的性质,所以我们当然要有递归的思想来解这道题,
我们把扩展画成一棵树,每个节点记录1.他的编号2.他形成的四个子树(即分出的四个子三角形)3.他靠的三角形编号(不难发现最多只有三个)
我们来看一个三角形,把他所接触的三条边分成三块
显然T1继承父节点的1,2“靠”着的,自己的“靠”3是T4
T2继承1,3,自己的2靠T4
T3继承2,3,自己的1靠T4
T4不继承,靠T1,T2,T3
有了递归的性质,这样我们就可以递推出来了,从根节点一点点往下不断更新,完了,
Code:
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<string>using namespace std;int a[51];int len=0;struct node{node *c[5];string name;string s[4];node(){c[0]=c[1]=c[2]=c[3]=c[4]=NULL;}}*root;int main(){char ch;getchar();while((ch=getchar())!='\n')a[++len]=ch-'0';root=new node();root->name='T';root->s[1]='T';root->s[2]='T';root->s[3]='T';for(int i=1;i<=len;i++){if(a[i]==1){root->c[1]=new node();root->c[1]->name=root->name+'1';root->c[1]->s[1]=root->s[1];root->c[1]->s[2]=root->s[2];root->c[1]->s[3]=root->name+'4';root=root->c[1];}elseif(a[i]==2){root->c[2]=new node();root->c[2]->name=root->name+'2';root->c[2]->s[1]=root->s[1];root->c[2]->s[2]=root->name+'4';root->c[2]->s[3]=root->s[3];root=root->c[2];}elseif(a[i]==3){root->c[3]=new node();root->c[3]->name=root->name+'3';root->c[3]->s[1]=root->name+'4';root->c[3]->s[2]=root->s[2];root->c[3]->s[3]=root->s[3];root=root->c[3];}else{root->c[4]=new node();root->c[4]->name=root->name+'4';root->c[4]->s[1]=root->name+'1';root->c[4]->s[2]=root->name+'2';root->c[4]->s[3]=root->name+'3';root=root->c[4];}}string str[3];str[0]=root->s[1];str[1]=root->s[2];str[2]=root->s[3];sort(str,str+3);for(int i=0;i<3;i++)if(str[i]!="T")cout<<str[i]<<endl;return 0;}
0 0
- 【BZOJ】【P1258】【CQOI2007】【三角形tri】【题解】【乱搞】
- BZOJ 1258([CQOI2007]三角形tri-模拟)
- bzoj1258: [CQOI2007]三角形tri
- 1258: [CQOI2007]三角形tri
- [CQOI2007]三角形tri 解题报告
- 【bzoj1258】【CQOI2007】【三角形tri】【贪心】
- 【模拟】【CQOI 2007】【bzoj 1258】三角形tri
- 【BZOJ】【P3707】【圈地】【题解】【乱搞】
- BZOJ 1257 [CQOI2007]余数之和sum 题解
- bzoj 1257 [CQOI2007] 余数之和 sum 题解
- 【BZOJ】【P1260】【CQOI2007】【涂色paint】【题解】【dp】
- 【BZOJ】【P1081】【SCOI2005】【超级格雷码】【题解】【乱搞】
- 【BZOJ】【P3543】【ONTAK2010】【Garden】【题解】【乱搞】
- 【BZOJ】【P2338】【HNOI2011】【数矩形】【题解】【乱搞】
- 【BZOJ】【P2793】【Poi2012】【Vouchers】【题解】【乱搞】
- BZOJ系列1257《[CQOI2007]余数之和sum》题解
- 【题解】余数之和 数论 分块优化 [CQOI2007] BZOJ – 1257
- 【分块】BZOJ 1257 [CQOI2007]余数之和sum题解
- Java 的堆和栈
- new a AsyncTask cause 'Can't create handler inside thread that has not called Looper.prepare()'
- node-webkit practice (实战了一把node-webkit)
- android:windowSoftInputMode属性详解
- 初识安卓小程序(点击按钮切换屏幕颜色)
- 【BZOJ】【P1258】【CQOI2007】【三角形tri】【题解】【乱搞】
- C51单片机自实现printf函数
- LeetCode Longest Palindromic Substring
- 从Cell类型转变成数据型
- ubuntu12.04下搭建ftp服务器
- Cairo-dock
- 今后这个博客不再更新,迁移至http://liujiacai.net/
- [C#]组合框设计windows加减乘除简单计算器应用
- mysql binlog日志自动清理及手动删除