CF Round #354(Div.2)

A 输入一个数组,数组元素只能交换一次,求最大值与最小值之间的最大距离。(后来才发现看题目不认真,最小值为1,最大值为n...)

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int num[110];
int main() {
    int n;
    while(cin>>n) {
        int mmax=-1,mmin=10,maxflag=-1,minflag=-1;
        memset(num,0,sizeof(num));
        for(int i=0;i<n;i++) {
            cin>>num[i];
        }
        for(int i=0;i<n;i++) {
            if(num[i]>mmax) {
                mmax=num[i];
                maxflag=i;
            }
            if(num[i]<mmin) {
                mmin=num[i];
                minflag=i;
            }
        }
        int temp=max(max(n-1-minflag,max(minflag,maxflag)),n-1-maxflag);
        cout<<temp<<endl;
    }

    return 0;
}

B 模拟(这道题疑惑的是double的问题,总觉得迟早会在精度上吃亏,所以一开始想着放大对应倍数...)

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
double glass[15][15];
int main() {
    int n,t;
    while(~scanf("%d%d",&n,&t)) {
        memset(glass,0,sizeof(glass));
        glass[1][1]=t;
        int cnt=0;
        for(int i=1;i<=n;i++) {
            for(int j=1;j<=i;j++) {
                if(glass[i][j]>=1) cnt++;
                if(glass[i][j]>1) {
                    glass[i+1][j]+=(glass[i][j]-1)/2;
                    glass[i+1][j+1]+=(glass[i][j]-1)/2;
                }
            }
        }
        printf("%d\n",cnt);
    }
    return 0;
}

时间: 2024-10-04 06:52:21

CF Round #354(Div.2)的相关文章

Codeforces Round #354 (Div. 2) ABCD

Codeforces Round #354 (Div. 2) Problems # Name     A Nicholas and Permutation standard input/output 1 s, 256 MB    x3384 B Pyramid of Glasses standard input/output 1 s, 256 MB    x1462 C Vasya and String standard input/output 1 s, 256 MB    x1393 D T

cf Round#273 Div.2

题目链接,点击一下 Round#273 Div.2 ================== problem A Initial Bet ================== 很简单,打了两三场的cf第一次在10分钟内过题 判平均数,且注意b为正 1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int res = 0,n; 6 for(int i = 0; i < 5; i++) 7 { 8 cin>>

【codeforces】【比赛题解】#854 CF Round #433 (Div.2)

cf一如既往挺丧 看丧题点我! [A]分数 Petya是数学迷,特别是有关于分数的数学.最近他学了所谓一个分数被叫做"真分数"当且仅当其分子小于分母,而一个分数被叫做"最简分数"当且仅当其分子分母互质.在闲暇时间,Petya在用计算器研究:如何把最简真分数转换为小数等问题.有一天他不小心把除号(÷)按成了加号(+),导致他得到了分子与分母的和.Petya想要得到他原来的分数,但他很快发现这不是唯一的.所以现在他想要知道最大的最简真分数使得其分子与分母的和为n. 输入

Codeforces Round #354 (Div. 2)

5/5 水了场CF,写个水水地题解~~ 题A CodeForces 676A 题意:给你一个排列,问你交换一次,最大最小位置最远是多少? 题解:暴力交换,暴力算,反正数据小.偷懒被hack更惨!! 1 /*zhen hao*/ 2 #include <bits/stdc++.h> 3 using namespace std; 4 5 #define lson l, m, rt*2 6 #define rson m + 1, r, rt*2+1 7 #define xx first 8 #def

【codeforces】【比赛题解】#849 CF Round #431 (Div.2)

cf的比赛越来越有难度了--至少我做起来是这样. 先看看题目吧:点我. 这次比赛是北京时间21:35开始的,算是比较良心. [A]奇数与结束 "奇数从哪里开始,又在哪里结束?梦想从何处起航,它们又是否会破灭呢?" 给定一个长度为n的序列.确定能不能将序列分成奇数个长度为奇数的非空字串,而且这其中每个子串以奇数开头,以奇数结尾.可以只分成一个(1也是奇数). 输入 第一行一个正整数n,表示序列长度. 第二行n个整数,表示序列中的元素. 输出 输出"Yes"或"

【解题报告】CF Round #320 (Div. 2)

Raising Bacteria 题意:盒子里面的细菌每天会数量翻倍,你可以在任意一天放任意多的细菌,最后要使得某天盒子里面的细菌数量等于x,求至少要放多少个细菌 思路:显然,翻倍即为二进制左移一位,那么放入一个细菌,到第二天就变成2个二进制下即为1->10对于任意二进制数 如:1001110,只需要在第一天放1个,第4.5.6天各放一个,再等一天,就可以了.所以答案显然是x在二进制下1的个数. Finding Team Member 题意:2n个人,每两个人组合的队伍有aij的力量.每个人都希

Codeforces Round #354 (Div. 2) B. Pyramid of Glasses (模拟+思维)

原题请戳这里 题意: 将杯子摆成杨辉三角状,即顶层1个杯子,第二层2个杯子,……第N层N个杯子. 每一秒能倒满1个杯子,每次一个杯子满了,酒会平分得流入它下面支撑它的两个杯子中. 如下图所示.1 ≤ n ≤ 10, 0 ≤ t ≤ 10 000. 分析:由于n很小,所以直接模拟此过程,其实也是一个递推的过程. 注意,如果递推的时候没有递推到n+1层,那么最后统计的时候是统计>=1的个数而不是==1的个数, 因为当酒能倒满的杯子大于n层杯子即n*(n+1)/2<t时,递推过程终止于n层,不能向下

Codeforces Round #354 (Div. 2) C. Vasya and String

题目大意:有一个(a|b)^N的由a和b构成的长度为N的字符串,允许修改其中k位.问能构成的最长的全为a或全为b的子串的长度最长为多少. 思路,用两个队列分别保存前K+1个a和b的位置,以i为结尾的最长的子串的长度就是i减去队列头元素的值. #include <iostream> #include <cstdio> #include <memory.h> #include <queue> using namespace std; int main(int a

Codeforces Round #354 (Div. 2) - B. Pyramid of Glasses

/* 队友告知的题意,大概是 杯子如题摆放,有 n 层 .最上面那个杯子一秒钟可以装满, 给出 n 和时间 t ,问 t 秒后可以装满多少个杯子. 大致思路是 使用二维数组模拟杯子往下漏水的过程. 最后扫一遍数组计算容量大于 1 的个数 . */ #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<string> using name