#418(div2)A

题意:长度为n,m的2个数列a,b。a中有m个0,将m个数代替0,问是否只有一种放法让a为递增的,可以输出No,否则Yes

思路:当m大于1的时候,肯定是Yes,然后我们将他放进去试一下就行了



 1 #include<bits/stdc++.h>
 2 using namespace std;
 3
 4 int main(){
 5     int n,k;
 6     cin>>n>>k;
 7     int a[100];
 8     int b[100];
 9     for(int i=1;i<=n;i++){
10         scanf("%d",&a[i]);
11     }
12     for(int i=1;i<=k;i++) scanf("%d",&b[i]);
13     if(k>1){
14         cout<<"Yes"<<endl;
15     }
16     else {
17             if(a[1]==0) a[1]=b[1];
18         for(int i=1;i<n;i++){
19             if(a[i+1]==0){
20                 swap(a[i+1],b[1]);
21             }
22             if(a[i]>=a[i+1]){
23                 cout<<"Yes"<<endl;return 0;
24             }
25         }
26         if(a[n-1]>=a[n]){
27              cout<<"Yes"<<endl;return 0;
28         }
29         cout<<"No"<<endl;
30     }
31     return 0;
32 }

				
时间: 2024-12-28 20:41:22

#418(div2)A的相关文章

codeforces round 418 div2 补题 CF 814 A-E

A An abandoned sentiment from past 水题 #include<bits/stdc++.h> using namespace std; int a[300],b[300],n,k; bool cmp(int a,int b) { return a>b; } int main() {//freopen("t.txt","r",stdin); scanf("%d%d",&n,&k); f

#418(div2)B

题意:输入n,代表有n种颜色,然后给出a,b2个数列,存在位置i,使得某个数列和a数列在i处不同,其他处相同,存在位置j,使得某个数列和b数列在j出不同,其他处相同,且某个数列中的数为1-n. 思路:在a数列中我们可以肯定有2个一模一样的颜色,b也是,那么a,b不同的的个数可能为0,1,2.好吧,考虑那么多导致我崩了...我们只要知道那2个位置必定有一个要改变,我就一个个判断,搞那么多花里胡哨的干嘛.. 1 #include<bits/stdc++.h> 2 using namespace s

cf386(div2)大一狗ACM之路

#cf386(div2)总结#前两题很顺利的做了出来, c题扔了, D题wrong了5发才A掉.A题签到题, 但是想多了, 代码写的有点长了. 找被整除最小值*7.B题 读题读了一会, 读完了就有思路了, 1A. 字符串问题, 从后往前两个两个的放到新的字符串里, 一个从最左, 一个从最右, 模拟指针扫着放, 最后特判会不会扫到一起.C题跳了没看, 最后做完了D题回来看了一眼没什么思路 日后再说.D题, 恩.. 两个多小时都用在这题上面了, 20分钟的时候做完了B之后就一直再啃D题, 暴力判断啊

Codeforces gym Hello 2015 Div1 B and Div2 D

Codeforces gym 100571 problem D Problem 给一个有向图G<V,E>和源点S,边的属性有长度L和颜色C,即E=<L,C>.进行Q次询问,每次给定一个点X,输出S到X的最短路的长度(不存在则输出 -1).但要求S到X的路径中相邻两条边颜色不一样. Limits Time Limit(ms): 1000 Memory Limit(MB): 256 |V|, |E|: [1, 10^5] X, S: [1, |V| ] L: [1, 10^9] |C|

编写css让div2在div1的右下角?

<style>#div1{ width:200px; height:200px; background-color:#F00;}#div2{ width:50px; height:50px; background:#FF0; position:relative; left:75%; top:75%; }</style></head> <body><div id="div1"> <div id="div2&quo

codeforces round #257 div2 C、D

本来应该认真做这场的,思路都是正确的. C题,是先该横切完或竖切完,无法满足刀数要求,再考虑横切+竖切(竖切+横切), 因为横切+竖切(或竖切+横切)会对切割的东西产生交叉份数,从而最小的部分不会尽可能的大. 代码如下,虽然比较长.比较乱,但完全可以压缩到几行,因为几乎是4小块重复的代码,自己也懒得压缩 注意一点,比如要判断最小块的时候,比如9行要分成2份,最小的剩下那份不是9取模2,而应该是4 m/(k+1)<=m-m/(k+1)*k          #include<bits/stdc+

codeforces Round #250 (div2)

a题,就不说了吧 b题,直接从大到小排序1-limit的所有数的lowbit,再从大到小贪心组成sum就行了 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #define N 200000 6 using namespace std; 7 int pos[N],a[N],s[N],f[N],la[N],b[N],i,j,k,ans,n,p

SRM621 (div2)

TwoWaysSorting sort.... NumbersChallenge 01dp... MixingColors loading..... SRM621 (div2),布布扣,bubuko.com

Codeforces 583 DIV2 Robot&#39;s Task 贪心

原题链接:http://codeforces.com/problemset/problem/583/B 题意: 就..要打开一个电脑,必须至少先打开其他若干电脑,每次转向有个花费,让你设计一个序列,使得总花费最小. 题解: 就傻傻的走就好..从左走到右,再走回来,更新序列和答案就好. 代码: #include<iostream> #include<cstring> #include<algorithm> #include<cstdio> #define MA