当前位置: 首页 > 编程日记 > 正文

2016 多校赛3 A 水 B 期望,规律 C 各种博弈 J 物理题,积分 K 暴力,水

2016 Multi-University Training Contest 3

A - Sqrt Bo

题意:给一个数 n,问n要多少次平方后化为1,如果超过5次输出"TAT"。

tags:SB题,5次内平方的,即小于2*2*4*16*256*65536 。然后0、1特判。

#include<bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:102400000,102400000")
#define rep(i,a,b) for (int i=a;i<=b;i++)
#define per(i,b,a) for (int i=b;i>=a;i--)
#define mes(a,b)  memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
typedef long long ll;
const int N = 200005;int main()
{string s;while(cin>>s) {if(s.length()>10) { puts("TAT"); continue; }ll x=0, s1=1;per(i, s.length()-1, 0)  x+=(s1*(s[i]-'0')), s1*=10;if(x>=4294967296)  { puts("TAT"); continue; }if(x==0)  { puts("TAT"); continue; }if(x==1)  { cout<<1<<endl; continue; }int cnt=0;while(x!=1) x=(ll)sqrt(x), ++cnt;cout<<cnt<<endl;}return 0;
}
//4294967296
View Code

B - Permutation Bo

题意:给出数组c[],另有一个数组h[]是1~n的序列。f()=c[i]*(h[i]>h[i-1] && h[i]>h[i+1]),(i=1~n) 。

tags:根据期望的线性性,我们可以分开考虑每个位置对答案的贡献。或者打个表看每个位置计算了多少次,也能看出规律。注意要特判1的情况。

#include<bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:102400000,102400000")
#define rep(i,a,b) for (int i=a;i<=b;i++)
#define per(i,b,a) for (int i=b;i>=a;i--)
#define mes(a,b)  memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
typedef long long ll;
const int N = 200005;int main()
{int n;while(scanf("%d", &n)!=EOF){int ai;if(n==1)  { scanf("%d", &ai);  printf("%.6f\n", ai*1.0); continue; }double x=0;rep(i,1,n)  {scanf("%d", &ai);if(i==1 || i==n) x+= ai*1.0/2;else  x+= ai*1.0/3;}printf("%.6f\n", x);}return 0;
}
View Code

C - Life Winner Bo

题意:N*M的国际象棋棋盘,有 王、皇后、车、马四种棋子。一个棋子最初在(1,1),指定棋子类型,两人轮流移动(要按棋子规则,且只能往右下方移动),问先手胜负。

tags: 分成4种博弈分别处理。

王:可以向右、向下或斜向移动一格,看作n-1和m-1的两堆石子,每次可以选一堆取一个或者两堆都取一个,即巴什博弈。

皇后:看作两堆石子,每次可以选一堆取任意个或者两堆取同样多个,即威佐夫博弈。

车:看作两堆石子,每次可以选一堆取任意个,即尼姆博弈。

马:NP态搜一下,(n,m)位置是必败态,bfs往前面推,可以到必败态的即为必胜,只能到必胜态的即为必败。

#include<bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:102400000,102400000")
#define rep(i,a,b) for (int i=a;i<=b;i++)
#define per(i,b,a) for (int i=b;i>=a;i--)
#define mes(a,b)  memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define PII  pair<int , int >
#define fi  first
#define se  second
#define MP  make_pair
typedef long long ll;
const int N = 1005;int ty, n, m, vis[N][N];
bool check(int x, int y) {if(x>=1 && y>=1) return true;return false;
}
int bfs()
{mes(vis, 0);  vis[n][m]=-2;queue<PII> q;   q.push(MP(n,m));while(!q.empty()){int x=q.front().fi,  y=q.front().se;q.pop();if(vis[x][y]==-2) {if(check(x-2, y-1)) vis[x-2][y-1]=1, q.push(MP(x-2, y-1));if(check(x-1, y-2)) vis[x-1][y-2]=1, q.push(MP(x-1, y-2));}else if(vis[x][y]==1) {if(check(x-2, y-1)) --vis[x-2][y-1];if(vis[x-2][y-1]==-2) q.push(MP(x-2, y-1));if(check(x-1, y-2)) --vis[x-1][y-2];if(vis[x-1][y-2]==-2) q.push(MP(x-1, y-2));}}return vis[1][1];
}
int main()
{int T;  scanf("%d", &T);while(T--){scanf("%d %d %d", &ty, &n, &m);if(ty==1)  {if((n-1)%2==1 || (m-1)%2==1)  puts("B");else puts("G");}if(ty==2) {if((n-1)^(m-1)) puts("B");else puts("G");}if(ty==4) {double ci=1.0*(1+sqrt(5))/2*abs(n-1-(m-1));if(((int)ci)==min(n-1, m-1)) puts("G");else puts("B");}if(ty==3) {int ci=bfs();if(ci==0 || ci==-1) puts("D");else if(ci==1) puts("B");else puts("G");}}return 0;
}
View Code

J - Rower Bo

题意:船在点(0,a),要到(0,0)。有速度v2的水流沿x轴方向,船速v1方向始终指向(0,0),问最少要多少时间到(0,0) 。

tags:积分的知识都忘的差不多了。。

代码:

#include<bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:102400000,102400000")
#define rep(i,a,b) for (int i=a;i<=b;i++)
#define per(i,b,a) for (int i=b;i>=a;i--)
#define mes(a,b)  memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
typedef long long ll;
const int N = 200005;int main()
{int a, v1, v2;while(scanf("%d %d %d", &a, &v1, &v2)!=EOF){if(a==0) puts("0");else if(v1<=v2) puts("Infinity");else {printf("%.6f\n", 1.0*a*v1/(v1*v1-v2*v2));}}return 0;
}
View Code

K - Teacher Bo

题意:给出 n个点,问是否有点A、B和点C、D的曼哈顿距离相等。

tags:题目特意说了点的坐标域为[0,M],则曼哈顿距离的域则为[0,2*M]。由抽屉原理,只要暴力跑出2*M+1个距离就一定可以找出答案。

#include<bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:102400000,102400000")
#define rep(i,a,b) for (int i=a;i<=b;i++)
#define per(i,b,a) for (int i=b;i>=a;i--)
#define mes(a,b)  memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define PII  pair<int , int >
#define fi  first
#define se  second
typedef long long ll;
const int N = 100005;int n, m;
PII  co[N];
map<int , int > mp;
int main()
{int T;  scanf("%d", &T);while(T--){mp.clear();scanf("%d %d", &n, &m);rep(i,1,n)  scanf("%d %d", &co[i].fi, &co[i].se);bool flag=0;    int cnt=0;rep(i,1,n) {if(flag==1 || cnt==2*m+1) break;rep(j,i+1,n) {int s= abs(co[i].fi-co[j].fi) + abs(co[i].se-co[j].se);if(mp.find(s)!=mp.end())  { flag=1; break; }else  mp[s]=1;++cnt;   if(cnt==2*m+1)  break;}}if(flag==1) puts("YES");else  puts("NO");}return 0;
}
View Code

转载于:https://www.cnblogs.com/sbfhy/p/6774157.html

相关文章:

BZOJ 1801 [Ahoi2009]中国象棋(线性动规)(洛谷P2051)

题意&#xff1a;就是在n*m的格子中放“炮”&#xff08;中国象棋中的棋子&#xff09;问有多少种放法&#xff0c;使得没有任意的两个炮相互攻击 思路&#xff1a;我们很容易的得到一列或者一行中最多放下两个炮&#xff08;我也只能得到这些了&#xff0c;满脑子状压&#xf…

Java中父类构造方法对子类构造方法的影响(不是一句话可以说清的)

推荐的阅读顺序是&#xff1a;先看Test类&#xff0c;再根据提示看父类和子类 让我们通过代码来了解一下&#xff1a;创建一个父类&#xff1a; public class Father{public Father(){super();//默认调用Object构造方法(Object是所有类的父类)System.out.println("父类构…

ORB_SLAM2概述

追踪线程 灰度化处理。构建当前帧&#xff08;提取每幅图像的特征点&#xff0c;并分配到网格中&#xff0c;这会极大的方便某一领域内的特征点的查找与匹配&#xff09;。单目相机初始化操作&#xff1a;通过特征点匹配&#xff0c;使用RANSACDLC计算H矩阵&#xff0c;并根据…

源同步方法与注意事项

2021年的信息安全攻防演练比2020年来的稍早了一些&#xff0c;还是一样的配方&#xff0c;还是一样的味道。检查单位的YUM源&#xff0c;发现没有CentOS 7.9的&#xff0c;排查后发现原来是中科大的rsync同步地址放生了变化&#xff0c;导致源同步失败。改一下地址就好&#xf…

Android开发教程 - 使用Data Binding(二)集成与配置

本系列目录 使用Data Binding&#xff08;一&#xff09;介绍使用Data Binding&#xff08;二&#xff09;集成与配置使用Data Binding&#xff08;三&#xff09;在Activity中的使用使用Data Binding&#xff08;四&#xff09;在Fragment中的使用使用Data Binding&#xff08…

Java封装(速读版)

封装就是使用公共方法对私有成员变量进行操作&#xff08;赋值或获取&#xff09;&#xff0c;这样做可以防止该类的代码和数据被其他类 定义的代码随意访问&#xff0c;有助于数据的安全。–我们可以通过修改成员变量的属性&#xff08;一般为private&#xff09;&#xff0c;…

C# 创建压缩文件

出处&#xff1a;http://www.cnblogs.com/sparkdev/ 在程序中对文件进行压缩解压缩是很重要的功能&#xff0c;不仅能减小文件的体积&#xff0c;还能对文件起到保护作用。如果是生成用户可以下载的文件&#xff0c;还可以极大的减少网络流量并提升下载速度。最近在一个 C# 项目…

Windows自带certutil工具校验用法

windows自带校验工具certutil&#xff0c;记录用法如下。 certutil -hashfile <file> MD5 certutil -hashfile <file> SHA1 certutil -hashfile <file> SHA256 注意MD5、SHA1、SHA256必须是大写的&#xff01;否则报错&#xff01; C:\Users\Lenovo\Downl…

C++数组名做函数形参/指针

数组名做函数形参 数组未开辟空间时 #include <iostream> using namespace std; void test(int* a) {*a 0;*(a1) 1;*(a2) 2;cout<<a[0]<<a[1]<<a[2]<<endl;return; } int main(int argc,char* argv[]) {int* a;test(a);cout<<a[0]<…

String创建方式及其区别(快速了解)

让我们来看两种赋值方式&#xff1a; 第一种&#xff1a;直接赋值 String name1 "Tom"; String name2 "Tom"; System.out.println(name1 name2);//用来判断name1和name2的地址是否相同&#xff0c;相同为true&#xff0c;不同为false //此时打印的结果…

npm 常用命令详解

本文以Windows平台上做测试&#xff0c;以gulp为示例做教程&#xff0c;出自作者白树&#xff0c;转载请声明&#xff01; 目录 npm是什么npm install 安装模块npm uninstall 卸载模块npm update 更新模块npm outdated 检查模块是否已经过时npm ls 查看安装的模块npm init 在项…

linux Mysql 安装

一、wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm二、sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm三、yum install -y mysql-server mysql mysql-devel四、systemctl start mysqld.service 五、systemctl status mysqld.service六、mysq…

==和equals()的作用及区别

""的作用是比较两个变量是否相等。 当变量是基本数据类型时&#xff0c;比较的是值是否相等的&#xff1a;相等返回true&#xff0c;不等返回false&#xff1a; double a 100.0;int b 100;System.out.println(ab);//输出结果为&#xff1a;true当变量是引用类型时…

np.dot()运算准则

数组*数组 直接点乘。 数组*多维 数组有3个元素的话&#xff0c;用(3,)表示 二维矩阵3*3用&#xff08;3,3&#xff09;表示 &#xff08;3,3&#xff09; * &#xff08;3,&#xff09;结果为&#xff08;3,&#xff09;&#xff0c;即包含3个元素的一维向量 https://blog.…

用createrepo命令创建自己的yum源

观察一下使用的各大开源软件镜像站的yum源&#xff0c;思考他们是怎么创建的呢&#xff1f;我们自己能否创建呢&#xff1f;当然能。 1、安装web服务&#xff0c;本例选择nginx。配置过程不多说&#xff0c;本例选择的根目录是/var/repos&#xff0c;添加三个选项可以看到包的…

String创建对象的个数 StringBuffer

String name1 "Tom"; //创建了一个String类型的对象 String name2 "Lu""cy"; //创建了一个String类型的对象&#xff08;先拼接后创建对象&#xff0c;所以是一个&#xff09;String str "Ja"; String name3 str "m…

第5次作业+105032014166+张珍珍

测试链接&#xff1a;http://www.cnblogs.com/wxcclub/p/6792634.html 一、被测项目界面。 二、测试用例设计表 1.等价类 等价类划分法 输入及外部条件 有效等价类 等价类编号 无效等价类 等价类编号 日期类型 数字 1 非数字 8 年 1912≤year≤2050 2 year<19…

C++ new

C中利用new操作符在堆区开辟数据 堆区开辟的数据&#xff0c;由程序员手动开辟&#xff0c;手动释放&#xff0c;释放利用操作符 delete 语法&#xff1a;new 数据类型 利用new创建的数据&#xff0c;会返回该数据对应的类型的指针 开辟单个内存 语法&#xff1a;new 数据类型…

漫画:禅道程序员的一天

更多精彩欢迎关注《海边的程序员》 转载于:https://www.cnblogs.com/xiaobai007/p/9797462.html

HA01-集群介绍

目录 一、宏观理解集群 二、微观理解集群 三、安装高可用集群环境 3.1、实验环境简介 3.2、安装集群软件并配置集群 3.3、用命令行创建集群 一、宏观理解集群 集群中的一个服务器称为一个节点node。 集群资源以mysql为例一般有&#xff1a;vip&#xff08;浮动IP&#…

Python并行编程(八):with语法

1、基本概念 当有两个相关的操作需要在一部分代码块前后分别执行的时候&#xff0c;可以使用with语法自动完成。同时&#xff0c;使用with语法可以在特定的地方分配和释放资源&#xff0c;因此&#xff0c;with语法也叫作"上下文管理器"。在threading模快中&#xff…

“抽象类”的定义及其与“普通类”的区别

我们都知道在多态中子类要重写父类的方法&#xff0c;执行时也执行子类中的方法&#xff0c;这就显得父类中的方法体有点子虚乌有了&#xff0c; 也就是说可以直接省略方法体&#xff0c;而只定义一个方法就可以了。因此&#xff0c;我们称一个没有方法体的方法为抽象方法&…

refreshcontrol 实现下拉刷新的功能

该组件实现下拉刷新的功能。不过该组件是用在ScrollView的内部的&#xff0c;为ScrollView添加一个下拉刷新的功能。当ScrollView的垂直方向的偏移量scrollY:0的时候&#xff0c;手指往下拖拽ScrollView就会触发onRefresh事件方法。 相关的属性&#xff1a; onRefresh functio…

C++二维数组名与数组指针的思考

二维数组名和数组指针可以当做一个东西用&#xff0c;但两者之间的含义是不同的。 二维数组名是一个指向数组中所有元素的指针&#xff0c;而数组指针是一个行指针。体现在sizeof()上的不同。 #include <iostream> using namespace std; int main() {// a是一个二维数组…

HA03-fence设置

目录 一、fence作用 二、在集群里添加fence 2.1、fence和node之间的通信 2.2、配置fence 2.3、node上安装fence代理 2.4、在集群中添加fence 2.5、fence动作 一、fence作用 HA01理解集群那篇文章中讲过&#xff0c;当集群中某个node出现故障&#xff0c;各个node争抢集…

springboot整合Quartz实现动态配置定时任务

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请注明出处。 https://blog.csdn.net/liuchuanhong1/article/details/60873295前言 在我们日常的开发中&#xff0c;很多时候&#xff0c;定时任务都不是写死的&#xff0c;而是写到数据库中&#xff0c;从而实现定时任…

SQLserver 常用函数适用方法(转载)

SQL Server 常用函数使用方法(持续更新) 之前就想要把一些 SQL 的常用函数记录下来&#xff0c;不过一直没有实行。。。嘿嘿。。。 直到今天用到substring()这个函数&#xff0c;C# 里面这个方法起始值是 0&#xff0c;而 SQL 里面起始值是 1。傻傻分不清楚。。。 这篇博客作为…

“接口”的定义及其与“抽象类”的区别

我们知道一个有抽象方法的类是抽象类&#xff0c;而当一个类中全是抽象方法时&#xff0c;就可以定义为接口&#xff08;interface&#xff09; 接口命名通常以“I”开头&#xff1b;接口中的方法默认有public abstract&#xff08;所以可以省略&#xff09;&#xff1b;接口中…

Linux13-计划任务crontab

目录 一、用户计划任务 1.1、定义用户计划任务的命令crontab 1.2、作业格式 二、系统计划任务cron 三、管理临时文件 3.1、systemd-tmpfiles命令与配置文件 3.2、用法举例 一、用户计划任务 1.1、定义用户计划任务的命令crontab Linux提供了针对周期性作业的crond守护…

Java线程安全 关于原子性与volatile的试验

1. 变量递增试验 1 static /*volatile*/ int shared0;//volatile也无法保证操作的原子性2 static synchronized int incrShared(){//不加synchronized的话&#xff0c;shared最终结果值小于预期3 return shared;4 }5 public static void testIncrShare…