试题链接:http://www.accoders.com/contest.php?cid=1893  考试密码请私信;

    T1

  明明就是O(n)的模拟,强行打成二分QAQ

  思路:判断收尾是否为1或n如果不是自己往上添加山峰,高度是

最接近的山峰的高度+两者之间的差值打完跑一遍即可,大水题.

T1-

 #include <bits/stdc++.h>
using namespace std;
int a[][];
int n,m,maxx,ans;
bool ac,wa;
int ef(){
for(register int i=;i<=m;i++){
if(ac==false&&i==) continue;
if(wa==false&&i==m) continue;
ans=max(maxx,max(ans,((a[i+][]-a[i][])-abs(a[i][]-a[i+][]))/+max(a[i][],a[i+][])));
}
return ans;
}
int main(){
scanf("%d%d",&n,&m);
for(register int i=;i<=m;i++){
scanf("%d%d",&a[i][],&a[i][]);
if(i==&&a[i][]!=){a[][]=;a[][]=(a[][]+a[][]-);ac=;maxx=max(a[][],maxx);}
maxx=max(maxx,a[i][]);
}
if(a[m][]!=n){wa=;a[m+][]=n;a[m+][]=(n-a[m][]+a[m][]);maxx=max(a[m+][],maxx);}
for(register int i=;i<=m;i++){
if(ac==false&&i==) continue;
if(wa==false&&i==m) continue;
int midd=a[i+][]-a[i][];
if(abs(a[i+][]-a[i][])>midd){printf("IMPOSSIBLE");return ;}
}
cout<<ef();
return ;
}

旅行日记

   

        T2

    本题难度中上,思路不太好想

  zkc大佬思路:将所有棋子点存储好,用每一个棋子遍历所有

的打击点,存储所有点共有的打击点,然后复制一张图以剩下的攻击

方式消除"o"和"x",若场面上还有"x"则为"NO",若无则为"YES",然

干完了这事后我们以所有打击方式来打击2*n-1那张图,然后输出即

  事实证明,暴力出奇迹,打表出省一(这么暴力谁想得到啊QAQ)

T2-

 #include <bits/stdc++.h>
using namespace std;
int n,qwq,lala;
char a[][];
char heiheihei[][];
int dis[][];
int xx[][];
char ans[][];
string s;
bool check3(int px,int py){
int cnt=;
for(register int i=;i<=qwq;i++){
int nx=dis[i][]+px;
int ny=dis[i][]+py;
if(nx>=&&nx<=n&&ny>=&&ny<=n)
if(a[nx][ny]=='x'){
cnt++;
if(cnt==qwq) return false;
}
}
return true;
}
bool check2(){
for(register int i=;i<=n;i++)
for(register int j=;j<=n;j++){
if(heiheihei[i][j]=='x') return false;
}
return true;
}
bool check1(int px,int py){
for(register int i=;i<=qwq;i++){
int nx=dis[i][]+px;
int ny=dis[i][]+py;
if(nx>=&&nx<=n&&ny>=&&ny<=n) if(a[nx][ny]=='.') return false;
}
return true;
}
int main(){
scanf("%d",&n);
for(register int i=;i<=n;i++){
cin>>s;
for(register int j=;j<n;j++){
a[i][j+]=s[j];
if(a[i][j+]=='o') dis[++qwq][]=i,dis[qwq][]=j+;
}
}
for(register int k=;k<=qwq;k++){
for(register int i=;i<=n;i++)
for(register int j=;j<=n;j++){
if((a[i][j]=='x')||(a[i][j]=='o'&&i!=dis[k][]&&j!=dis[k][])){
int px=i-dis[k][],py=j-dis[k][];
if(check1(px,py)) xx[++lala][]=px,xx[lala][]=py;
}
}
}
for(register int i=;i<=n;i++)
for(register int j=;j<=n;j++){
heiheihei[i][j]=a[i][j];
}
for(register int i=;i<=qwq;i++){
heiheihei[dis[i][]][dis[i][]]='.';
for(register int j=;j<=lala;j++){
heiheihei[dis[i][]+xx[j][]][dis[i][]+xx[j][]]='.';
}
}
if(check2()) printf("YES\n");
else{printf("NO\n");return ;}
memset(xx,,sizeof(xx));
lala=;
for(register int k=;k<=qwq;k++){
for(register int i=;i<=n;i++)
for(register int j=;j<=n;j++){
if(a[i][j]=='.'){
int px=i-dis[k][],py=j-dis[k][];
if(check3(px,py)) xx[++lala][]=px,xx[lala][]=py;
}
}
}
memset(ans,'x',sizeof(ans));
ans[n][n]='o';
for(register int i=;i<=lala;i++){
ans[n+xx[i][]][n+xx[i][]]='.';
}
for(register int i=;i<=*n-;i++){
for(register int j=;j<=*n-;j++) cout<<ans[i][j];printf("\n");}
return ;
}

奇怪的棋

  

   T3

  本题找规律,难度中等,但记住要开long long,同时记住每算一个就%一下

  思路:在k之后的点不能通往1,所以后面得点不能通往k前

因为k前的点按题意都必须通往1,所以k后的种类数即为(n-k)^(n-k),

在k前的点需要以奇异的算法来算,不难发现在k前的点只要构成循环

或者都指向返回1的点即可成立,所以得出结论在k前的种类数即为

(k-1)^k,最后将两者相乘取mod便可

T3-

 #include <bits/stdc++.h>
using namespace std;
long long modd=1e9+;
long long x,y,ans;
long long n,m;
long long ksm(long long a,long long b,long long p){
long long ans=;
while(b){
if(b&) ans=(ans*a)%p;
a=(a*a)%p;
b/=;
}
return ans;
}
int main(){
scanf("%lld%lld",&n,&m);
if(n-m!=){
x=ksm((n-m)%modd,n-m,modd);
}
if(n-m==) x=;
y=ksm(m%modd,m-,modd);
ans=x*y%modd;
printf("%lld",ans);
return ;
}

小明的城堡

  end;

   

2019西安多校联训 Day1的更多相关文章

  1. 2019西安多校联训 Day5

    T1 光哥为了不让某初二奆佬恶心到我们而留下的火种 (貌似没这题平均分就100-了) 思路:就一横一竖让后就gztopa嘛 #include <bits/stdc++.h> using n ...

  2. 2019西安多校联训 Day4

    T1 大水题!!难度简单,显然的贪心策略即可,but... 思路:首先我们按与i点作战后活下来的士兵排序,然后 若当前剩余兵力足够直接减掉战斗死亡人数,如果不够就加 够再打它,但是!我们在考完试观察测 ...

  3. 2019西安多校联训 Day3

    试题链接:http://www.accoders.com/contest.php?cid=1895    考试密码请私信; 特别鸣谢:zkc奆佬帮助我优化本篇题解(语言表达方面) T1 显然二分求解的 ...

  4. 2019西安多校联训 Day2

    试题链接:http://www.accoders.com/contest.php?cid=1894   考试密码请私信; T1 残忍WA 0,明明就是一道非常菜的字符串QAQ 思路:一共找四种东西,A ...

  5. Contest1893 - 2019年6月多校联训b层测试1

    传送门 密码:waxadyt T1 暴力 对于任意相邻的两个值 中间能到达的最大高度是固定的 加上头尾,判一下就好了 代码//感谢Th Au K #include<bits/stdc++.h&g ...

  6. 2019 牛客国庆集训day1 2019 点分治

    题目链接:https://ac.nowcoder.com/acm/contest/1099/I 点分治,计算路径数的时候,先将每个点到根的距离模2019,计算的时候就可以O(n)求出数目,对于模201 ...

  7. 正睿 2019 省选附加赛 Day1 T1 考考试

    比较奇怪的一个枚举题. 注意到10=2*5,所以10^k的二进制表示一定恰好在末尾有k个0. 考虑从小到大去填这个十进制数. 填的时候记录一下当前的二进制表示. 每次尝试去填0或者10^k. 如果要填 ...

  8. [DBSDFZOJ 多校联训] 就

    就 背景描述 一排 N 个数, 第 i 个数是 Ai , 你要找出 K 个不相邻的数, 使得他们的和最大. 请求出这个最大和. 输入格式 第一行两个整数 N 和 K. 接下来一行 N 个整数, 第 i ...

  9. [DBSDFZOJ 多校联训] Password

    Password password.in/.out 描述 你来到了一个庙前,庙牌上有一个仅包含小写字母的字符串 s. 传说打开庙门的密码是这个字符串的一个子串 t,并且 t 既是 s 的前缀又是 s ...

随机推荐

  1. ios Enum Value To NSString

    #define enumToString(value)  @#value eg. typedef NS_ENUM(NSInteger, Sex) { Male = 0, Famale = 1, }; ...

  2. nRF52832之硬件I2C

    这几天一直在折腾nRF52832的硬件I2C,到了今天最终出现了成果,在此也印证了那句话:"耕耘就有收获" 52832的硬件I2C尽管官方提供了demo,可是自己对I2C通信理解的 ...

  3. HNOI模拟 Day3.22

    第一题: 盾盾的打字机 (drdrd) [题目描述] 盾盾有一个非常有意思的打字机,现在盾哥要用这台打字机来打出一段文章. 由于有了上次的经验,盾盾预先准备好了一段模板 A 存在了内存中,并以此为基础 ...

  4. redis 的部分配置

    linux 安装: yum install redis 修改redis配置: 配置文件位于/etc/redis.conf. 作为守护进程运行(默认no) # 默认情况下 redis 不是作为守护进程运 ...

  5. 扩展欧几里得模板&逆元求法

    拓展欧几里得: 当 gcd ( a , b )= d 时,求绝对值和最小的 x , y 使得 x * a + y * b = d : d = gcd ( a , b ) = gcd ( b , a m ...

  6. BS与CS的联系与区别。

    C/S是Client/Server的缩写.服务器通常采用高性能的PC.工作站或小型机,并采用大型数据库系统,如Oracle.Sybase.Informix或 SQL Server.客户端需要安装专用的 ...

  7. AIZU AOJ 2309 Vector Compression 最小树形图(朱—刘算法)

    题意简述:给定若干个相同维度的向量,寻找一种排序方法,使得所有向量的表示长度总和最低. 所谓表示长度为(Aj-r*Ai)^2,其中i<j  数据范围:向量总数和维度均小于100 思路:(1)首先 ...

  8. Real-Time Compressive Tracking,实时压缩感知跟踪算法解读

    这是Kaihua Zhang发表在ECCV2012的paper,文中提出了一种基于压缩感知(compressive sensing)的单目标跟踪算法,该算法利用满足压缩感知(compressive s ...

  9. PCB 帆软FineReport安装,布署,配置

    公司使用帆软FineReport做为报表平台工具也有一年多时间,而FineReport报表平台与Tomcat Web应用服务是站队在java阵营里,因为相信拥抱微软;.net未来发展会越来越好,所以对 ...

  10. 基于.Net Core的API框架的搭建(4)

    6.加入日志功能 日志我们选用log4net,首先引入程序包: 选择2.0.8版本安装.然后在项目根目录新增log4net的配置文件log4net.config: <?xml version=& ...