Codeforces Round #277(Div. 2) (A Calculating Function, B OR in Matrix, C Palindrome Transformation)

简介:

#include<iostream>
#include<cstring>
#include<cstdio>
/*
 题意:计算f(n) = -1 + 2 -3 +4.....+(-1)^n *n的值    
 思路:偶数和 - 奇数和(或者用等差数列计算化简得到结果) 
*/
#include<algorithm>
#define N 10000
using namespace std;

int main(){
    long long n;
    cin>>n;
    if(n%2==0)  cout<<n/2<<endl;
    else cout<<(n-1)/2 - n<<endl;
    return 0;
} 

/*
题意:给定B矩阵,判定能否通过A矩阵得到,如果能,打印出这样的A矩阵
    Bij = Ai1||Ai2....||Ain || A1j || A2j .....|| Amj
思路:如果Bij == 0, 那么A矩阵的第i行和第j列的值都为0;
      然后检查Bij == 1的时候,那么A矩阵的第i行元素和第j列元素至少要一个1! 
*/ 
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define N 105
using namespace std;

int a[N][N];
int b[N][N];
int row[N], col[N];
int main(){
    int n, m;
    cin>>n>>m;
    for(int i=1; i<=100; ++i)
        for(int j=1; j<=100; ++j)
            a[i][j] = 1;
    bool flag = true;
    for(int i=1; i<=n; ++i)
        for(int j=1; j<=m; ++j){
            cin>>b[i][j];
            if(b[i][j] == 0){
                for(int k=1; k<=m; ++k)
                    a[i][k] = 0;
                for(int k=1; k<=n; ++k)
                    a[k][j] = 0;
            }
        } 
    for(int i=1; flag && i<=n; ++i)
        for(int j=1; flag&& j<=m; ++j)
            if(b[i][j] == 1){
                int k, h;
                for(k=1; k<=m; ++k)
                    if(a[i][k]==1) break;
                for(h=1; h<=n; ++h)
                      if(a[h][j] ==1 ) break;
                if(k>m && h>n) flag = false;
            }
    if(flag){
        cout<<"YES"<<endl;
        for(int i=1; i<=n; ++i){
            cout<<a[i][1];
            for(int j=2; j<=m; ++j)
                cout<<" "<<a[i][j];
              cout<<endl;
        } 
    }
    else cout<<"NO"<<endl;
    return 0;
} 

/*
题意:从字符串的某一个位置开始,执行向左,向右的操作到达某一个字符的位置,
    通过向上,向下来完成字符的转换,知道字符串变成一个回文串为止!
    
思路:贪心,在一半的区间完成这些操作一定是最少的(回文串是对称的,所以我们只考虑
      一半的区间是对的),并且最多转一次弯儿! 
*/ 
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define N 100005
using namespace std;
char str[N];
int num;
int main(){
    int n, p;
    cin>>n>>p;
    cin>>str+1;
    int len = n;
    if(p>len/2) p = len-p+1;
    int lx = N, rx = -1;
    for(int i=1; i<=len/2; ++i)//找到个需要更改字符区间 
        if(str[i] != str[len-i+1]){
            num += min(abs(str[i]-str[len-i+1]), 'z'-max(str[i], str[len-i+1])+(min(str[i], str[len-i+1])-'a')+1);
            if(lx > i) lx=i;
            if(rx < i) rx=i;
        }
     
    if(lx != N){
        if(lx<=p && rx>=p){
            int d1 = abs(rx-p);
            int d2 = abs(lx-p);
            if(d1>d2) num+=2*d2+d1;
            else num+=2*d1+d2;
        } 
        else if(rx<=p)  num+=p-lx;
        else if(lx>=p)  num+=rx-p; 
        cout<<num<<endl;
    } else cout<<0<<endl;
    return 0;
}

目录
相关文章
|
机器学习/深度学习 人工智能 BI
Codeforces Round #277(Div. 2) (A Calculating Function, B OR in Matrix, C Palindrome Transformation)
1 #include 2 #include 3 #include 4 /* 5 题意:计算f(n) = -1 + 2 -3 +4.....+(-1)^n *n的值 6 思路:偶数和 - 奇数和(或者用等差数列计算化简得到结果) 7 */ ...
843 0
|
4天前
|
存储 算法 对象存储
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
14 1
|
10天前
|
存储
function(函数)
在 Lua 中,函数作为第一类值可存储于变量,如示例所示:`factorial1` 和 `factorial2` 存储相同函数。此外,函数可作为参数传递,如 `testFun` 接收一个表和一个匿名函数,该匿名函数在迭代中处理键值对,输出 `key1=val1` 和 `key2=val2`。
|
12天前
|
JavaScript 前端开发
【专栏】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表
【4月更文挑战第29天】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表。它接受两个参数:上下文对象和参数数组。理解`apply`有助于深入JS运行机制。文章分三部分探讨其原理:基本概念和用法、工作原理详解、实际应用与注意事项。在应用中要注意性能、参数类型和兼容性问题。`apply`可用于动态改变上下文、传递参数数组,甚至模拟其他语言的调用方式。通过深入理解`apply`,能提升代码质量和效率。
|
14天前
|
Serverless 应用服务中间件 数据安全/隐私保护
Serverless 应用引擎操作报错合集之在阿里函数计算中,函数执行超时,报错Function time out after如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
18 4
|
1月前
|
资源调度 Serverless 计算机视觉
高斯函数 Gaussian Function
**高斯函数,或称正态分布,以数学家高斯命名,具有钟形曲线特征。关键参数包括期望值μ(决定分布中心)和标准差σ(影响分布的宽度)。当μ=0且σ²=1时,分布为标准正态分布。高斯函数广泛应用于统计学、信号处理和图像处理,如高斯滤波器用于图像模糊。其概率密度函数为e^(-x²/2σ²),积分结果为误差函数。在编程中,高斯函数常用于创建二维权重矩阵进行图像的加权平均,实现模糊效果。
20 1
|
2月前
|
算法 Serverless C语言
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
35 1
|
2月前
|
存储 安全 编译器
【C++ 包装器类 std::function 和 函数适配器 std::bind】 C++11 全面的std::function和std::bind的入门使用教程
【C++ 包装器类 std::function 和 函数适配器 std::bind】 C++11 全面的std::function和std::bind的入门使用教程
34 0
|
2月前
|
SQL Oracle 关系型数据库
Flink的表值函数(Table-Valued Function,TVF)是一种返回值是一张表的函数
【2月更文挑战第17天】Flink的表值函数(Table-Valued Function,TVF)是一种返回值是一张表的函数
25 1

热门文章

最新文章