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都没工夫练习了,反正我知 ...
随机推荐
- [ kvm ] 三种基础网络模型创建及分析
1. 前言 最近在模拟生产环境在做测试,本来准备用 vmware 直接来实现的,本着学以致用的道理,选择直接在linux 环境使用 kvm 来模拟测试,遇到的第一个问题就是,网络环境的模拟.这里对比v ...
- ArcGIS Server 10.2忘记用户名密码的解决方案
忘记了ArcGIS Server Manager的密码,可以采用以下方法进行重置. 1.找到ArcGIS Server的安装目录 D:\Program Files\ArcGIS\Server\tool ...
- RobotFrameWork中使用Chrome浏览器
RF默认使用的是Firefox浏览器,如果要修改为其他浏览器要怎么做呢? 1.按F5搜索关键字[Open Browser],可以看到其帮助信息中说明了不同浏览器时browser参数的值 2.Pytho ...
- 构建C1000K的服务器(1) – 基础
转自: http://www.ideawu.net/blog/archives/740.html 著名的 C10K 问题提出的时候, 正是 2001 年, 到如今 12 年后的 2013 年, C10 ...
- Java开发笔记(一百四十七)通过JDBC管理数据库
前面介绍了如何通过JDBC获取数据库连接,可是Connection对象不能直接执行SQL语句,需要引入Statement报告对象才能操作SQL.Statement对象由Connection的creat ...
- QT 学习基础问题记录
1. connect 函数 需要先创建发送者和接收者实例,并且信号函数和槽函数如果有参数,需要在 connect 函数使用时指定相关参数类型. 2.窗口控件设置 设置窗口的最大化.最小化.问号提示等控 ...
- 2019牛客暑期多校训练营(第二场)H Second Large Rectangle
示例一: 输入 : 1 2 01 输出: 0 示例二: 输入 : 1 3 101 输出: 1 示例三(自己自测找错误用的): 输入 : 6 610011111101111111111111111 ...
- Vivado关联Notepad++
Vivado自带的编辑器非常难看,我习惯用Notepad++,这里记录一下二者的关联. 1.打开Vivado,点击 Tools --- Settings --- Text Editor,右侧选择 Cu ...
- Shell编程入门基础上
前言 为什么学 Shell Shell 脚本语言是实现 Linux/UNIX 系统管理及自动化运维所必备的重要工具, Linux/UNIX 系统的底层及基础应用软件的核心大都涉及 Shell 脚本的内 ...
- GreenPlum 最佳实践
数据模型 Greenplum数据库是一种shared nothing的分析型MPP数据库.这种模型与高度规范化的/事务型的SMP数据库有显著区别.Greenplum数据库使用非规范化的模式设计会工作得 ...