洛谷 P4924 [1007] 魔法少女小Scarlet

题解:

cpp 复制代码
#include<iostream>
#include<vector>
int main(){
    int n,m,count=0;
    std::cin>>n>>m;
    std::vector<std::vector<int>> a(n,std::vector<int>(n,0));
    for(std::vector<std::vector<int>>::iterator row=a.begin();row!=a.end();++row){
        for(std::vector<int>::iterator col=row->begin();col!=row->end();++col){
            *col=++count;
        }
    }
    std::vector<std::vector<int>> b=a;
    //旋转公式用数学坐标推导即可,假设待旋转点为x0,y0,中心点为x,y,即可推导旋转之后的坐标通式
    for(int i=0;i!=m;++i){
        int x,y,r,z;
        std::cin>>x>>y>>r>>z;
        for(int j=x-1-r;j<=x-1+r;++j){
            for(int k=y-1-r;k<=y-1+r;++k){
                if(z==0) b[k-y+x][x+y-2-j]=a[j][k];
                else b[y+x-k-2][j-x+y]=a[j][k];
            }
        }
        a=b;
    }
    for(std::vector<std::vector<int>>::iterator row=b.begin();row!=b.end();++row){
        for(std::vector<int>::iterator col=row->begin();col!=row->end();++col){
            std::cout<<*col<<" ";
        }
        std::cout<<std::endl;
    }
    return 0;
}

结果:

相关推荐
苹果1 小时前
C++二十三种设计模式之原型模式
c++·设计模式·原型模式
EnticE1522 小时前
[项目实战2]贪吃蛇游戏
开发语言·数据结构·c++·游戏
fadtes5 小时前
C++ constexpr(八股总结)
开发语言·c++
zhangzhangkeji5 小时前
c/c++ 里的进程间通信 , 管道 pipe 编程举例
c语言·c++
小wanga5 小时前
【C++】特殊类设计
android·c++
ℒฺℴฺνℯ̶ฺ归̶零̶⋆3185 小时前
0107作业
c++
无限码力6 小时前
目标值子矩阵的数量
c++·算法·矩阵
Stanford_11066 小时前
关于物联网的基础知识(三)——物联网技术架构:连接万物的智慧之道!连接未来的万物之网!
c++·物联网·学习·微信小程序·架构·twitter·微信开放平台
ChoSeitaku6 小时前
No.6十六届蓝桥杯备战|赋值操作符|连续赋值|复合赋值|类型转换|强制|混合|赋值(C++)
c++·算法·蓝桥杯
萌の鱼6 小时前
leetcode 2279. 装满石头的背包的最大数量
数据结构·c++·算法·leetcode