试题链接: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. 【OI】Kruskal & ufs (克鲁斯卡与并查集)

    Kruskal是有关于最小生成树的算法. 这个算法非常好理解,用一句话来概括就是: 从小到大找不同集合的边. 那么,具体是怎样的呢. 1.先把所有顶点初始化为一个连通分量. 2.从所有边中选择最小的( ...

  2. ios25---图片拉伸

    控制器: // // ViewController.m // 12-图片的拉伸问题 // // Created by xiaomage on 15/12/30. // Copyright © 2015 ...

  3. linux下I2C驱动架构全面分析【转】

    本文转载自:http://blog.csdn.net/wangpengqi/article/details/17711165 I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一 ...

  4. InfluxDB存储引擎Time Structured Merge Tree——本质上和LSM无异,只是结合了列存储压缩,其中引入fb的float压缩,字串字典压缩等

    The New InfluxDB Storage Engine: Time Structured Merge Tree by Paul Dix | Oct 7, 2015 | InfluxDB | 0 ...

  5. [翻译]NUnit--前言(一)

    前言: 翻译这个系列主要是自己在学习NUnit之时看英文文档大部分能看懂但是有些还是功底不足,所以在方便自己以后再学习的时候可以快速查找,也能够加深印象以及掌握的更好.同时在搜索网上关于NUnit系列 ...

  6. 深入理解JMM(Java内存模型) --(三)顺序一致性

    数据竞争与顺序一致性保证 当程序未正确同步时,就会存在数据竞争.Java内存模型规范对数据竞争的定义如下: 在一个线程中写一个变量, 在另一个线程读同一个变量, 而且写和读没有通过同步来排序. 当代码 ...

  7. Java:EL表达式

    ylbtech-Java:EL表达式 EL(Expression Language) 是为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 ...

  8. Probabilistic interpretation

    Under the previous probabilistic assumptions on the data, least-squares regression corresponds to fi ...

  9. bzoj 3743: [Coci2015]Kamp【树形dp】

    两遍dfs一遍向下,一边向上,分别记录子树内人数a,当前点到所有点的距离b,最大值c和次大值d,最大值子树p 然后答案是2b-c #include<iostream> #include&l ...

  10. [Swift通天遁地]一、超级工具-(15)使用SCLAlertView制作强大的Alert警告窗口和Input编辑窗口

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...