BZOJ2523/LOJ2646 聪明的学生
BZOJ2523/LOJ2646 聪明的学生
第一道CTSC的题。
因为是思维题,所以思路就不写了。直接看代码吧。
#include<bits/stdc++.h>
#define M 30010
using namespace std;
int n,m,p,cnt;
int a[3],pre[3]={2,0,1},nxt[3]={1,2,0};
struct node {
int a,b,c;
}ans[M];
bool cmp(node x,node y) {
if(x.a!=y.a) {
return x.a<y.a;
}
if(x.b!=y.b) {
return x.b<y.b;
}
return x.c<y.c;
}
int Check(int x,int y,int p) {
if(x==y) {
return p+1;
}
return x>y?Check(y,x-y,nxt[p])+2:Check(y-x,x,pre[p])+1;
}
void Init() {
memset(ans,0,sizeof(ans));
cnt=0;
p=0;
return;
}
void Solve() {
p=(n-1)%3;
for(int i=1;i<=m-1;i++) {
int j=m-i;
if(Check(i,j,p)==n) {
a[p]=m;
a[nxt[p]]=i;
a[pre[p]]=j;
ans[++cnt]=(node){a[0],a[1],a[2]};
}
}
return;
}
void Print() {
printf("%d\n",cnt);
sort(ans+1,ans+cnt+1,cmp);
for(int i=1;i<=cnt;i++) {
printf("%d %d %d\n",ans[i].a,ans[i].b,ans[i].c);
}
return;
}
void Work() {
Init();
Solve();
Print();
return;
}
int main()
{
while(scanf("%d%d",&n,&m)&&(!(n==-1&&m==-1))) {
Work();
}
return 0;
}
BZOJ2523/LOJ2646 聪明的学生的更多相关文章
- [BZOJ2523][Ctsc2001]聪明的学生
[BZOJ2523][Ctsc2001]聪明的学生 试题描述 一位教授逻辑学的教授有三名非常善于推理且精于心算的学生A,B和C.有一天,教授给他们三人出了一道题:教授在每个人脑门上贴了一张纸条并告诉他 ...
- bzoj2523 聪明的学生
bzoj第一题,ctsc2001. 黑书上的递归例题,我们定义time()函数,递归求解即可. 这个题用到了一个小技巧:可以使用枚举来搞算法. #include <iostream> #i ...
- 【bzoj2523】【CTSC2001】聪明的学生
真是神仙题,做完后感觉智商提(jiang)升(di)了 这种题一般都是把局面设成状态,然后发现可以由一种状态转移到另一种状态,那就是 $dp$ 了. 但是这道题怎么设呢? 题目中给了你一个结论,一般题 ...
- *HDU1847 博弈
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- 探索性思维——How to Solve It
我觉得这篇文章和什么都能扯上点关系,比如编程. 很多人已经讨论过数学与编程的关系了,这里不想过多探讨,只是简单提一下:有些人把数学贬低地一文不值,认为做一般的应用软件用不到数学:而有些人则把数学拔高到 ...
- [转] ACM中国国家集训队论文集目录(1999-2009)
国家集训队1999论文集 陈宏:<数据结构的选择与算法效率——从IOI98试题PICTURE谈起>来煜坤:<把握本质,灵活运用——动态规划的深入探讨>齐鑫:<搜索方法中的 ...
- 【原创】我是怎么从零开始教女同学进行php开发的(4)
周末给自己放了一个小假,周五晚上跟同学出去吃饭,周六又休息了一天,直到周日才坐到电脑前面码字. 本来说好周末这两天把之前三篇的代码根据评论中的建议好好修改一下的,顺便认真系统地学习一遍HTML基础.结 ...
- lecture11-hopfiled网络与玻尔兹曼机
Hinton课程第11课 这部分的课程算是个知识背景,讲述RBM的来源吧,毕竟是按照hopfield--BM-RBM的路线过来的. 因为水平有限,都是直译,如果纠结某句话,肯定看不懂,所以这些课程只需 ...
- HD1847-(博弈论??)
Good Luck in CET-4 Everybody! Problem Description 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知 ...
随机推荐
- [Golang] mynats(对nats.go的二次封装)
0x0 前言 最近项目开始使用nats作为消息中间件. nats的引入确实解决项目很多痛点. 比如: 1)服务动态横向扩展 2)负载均衡(nats的均衡机制只有随机,不过对我们来说也够用了) 3)多服 ...
- scrollview的优化
针对一次加载很多格子的scrollview的优化,第一次只加载可视区域的格子,其他的用空物体占位,在每次滑动时检测需要实例化的格子,通过对象池重用第一次的格子.可以根据每行格子的数量只检测每行的第一个 ...
- oracle 在列名后的 (+)是什么意思,如何转换为mysql
外连接的意思select *from a,bwhere a.id=b.id(+)意思就是返回a,b中匹配的行 和 a中有但是b中没有的行. 参考https://www.cnblogs.com/Aaro ...
- LINGO与EXCEL之间的数据传递
前言 LINGO 作为非线性规划运算的专用软件,得出结果一般都是纯文本的一列数据,要想将数据呈现到论文当中,需要整理到 EXCEL 中,使用复制粘贴容易出错还费时,所以必须要动用函数来提高效率! 案例 ...
- 关于一致性hash,这可能是全网最形象生动最容易理解的文档,想做架构师的你来了解一下
问题提出 一致性hash是什么?假设有4台缓存服务器N0,N1,N2,N3,现在需要存储数据OBJECT1,OBJECT2,OBJECT3,OBJECT4,OBJECT5,OBJECT5,OBJECT ...
- 创建maven父项目以及子项目
创建maven父项目以及子项目(Eclipse创建Maven Project跟Maven Module)https://blog.csdn.net/Mrsanger/article/details/8 ...
- Java函数式编程
函数式编程 从JDK1.8开始为了简化使用者进行代码的开发,专门提供有lambda表达式的支持,利用此操作形式可以实现函数式的编程,对于函数编程比较著名的语言是:haskell.Scala,利用函数式 ...
- 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径
原文:在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 在项目编译成 dll 之前,如何分析项目的所有依赖呢?可以在在项目的 Target 中去收集项目的依赖. ...
- PHP获取前台传过来的时间年份,进行处理。
在做时间区间用到一个方法,以方便在数据库中用in()的使用,这个是我同事给我的,我先保存好,以后还可以的用到. /*处理起终年月,返回中间的月份以供数据库查询使用 * @param $yearl 起始 ...
- deppin Linux下安装docker
首先楼主用的是deppin15.11 docker 简介:Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中. ...