problemscpp
A collection of my answers to algorithm problems in c++.
函数
acwing::acwing3441 命名空间参考

  1. 重复者
更多...

函数

void draw (const vector< vector< char > > &g, int n, int level, vector< vector< char > > &canvas, int x, int y, int space)
 
int main (istream &cin, ostream &cout)
 
 TEST (acwing3441, case1)
 

详细描述

  1. 重复者

函数说明

◆ draw()

void acwing::acwing3441::draw ( const vector< vector< char > > &  g,
int  n,
int  level,
vector< vector< char > > &  canvas,
int  x,
int  y,
int  space 
)

在文件 acwing408.cpp1746 行定义.

1746 {
1747 if(level > 1) {
1748 space /= n;
1749 for(int i = 0; i < n; i++) {
1750 for(int j = 0; j < n; j++) {
1751 if(!isspace(g[i][j])) {
1752 draw(g, n, level - 1, canvas, x + i * space, y + j * space, space);
1753 }
1754 }
1755 }
1756 return;
1757 }
1758
1759 for(int i = 0; i < n; i++) {
1760 for(int j = 0; j < n; j++) {
1761 canvas[x + i][y + j] = g[i][j];
1762 }
1763 }
1764 }
void draw(const vector< vector< char > > &g, int n, int level, vector< vector< char > > &canvas, int x, int y, int space)
Definition: acwing408.cpp:1746

引用了 draw().

被这些函数引用 draw() , 以及 main().

◆ main()

int acwing::acwing3441::main ( istream &  cin,
ostream &  cout 
)

在文件 acwing408.cpp1766 行定义.

1766 {
1767 int n;
1768 while(cin >> n) {
1769 int q;
1770 if(n == 0) {
1771 break;
1772 }
1773 vector<vector<char>> graph = vector<vector<char>>(n, vector<char>(n, ' '));
1774 for(int i = 0; i < n; i++) {
1775 for(int j = 0; j < n; j++) {
1776 char ch = cin.get();
1777 if(ch != '\n') {
1778 graph[i][j] = ch;
1779 } else {
1780 j--;
1781 }
1782 }
1783 }
1784 cin >> q;
1785 int canvas_size = 1;
1786 for(int i = 0; i < q; i++) {
1787 canvas_size *= n;
1788 }
1789 vector<vector<char>> canvas = vector<vector<char>>(canvas_size, vector<char>(canvas_size, ' '));
1790 draw(graph, n, q, canvas, 0, 0, canvas_size);
1791 for(int i = 0; i < canvas_size; i++) {
1792 for(int j = 0; j < canvas_size; j++) {
1793 cout << canvas[i][j];
1794 }
1795 cout << endl;
1796 }
1797 }
1798 return 0;
1799 }

引用了 draw().

被这些函数引用 TEST().

◆ TEST()

acwing::acwing3441::TEST ( acwing3441  ,
case1   
)

在文件 acwing408_test.cpp1915 行定义.

1915 {
1916 istringstream in("3\n"
1917 "# #\n"
1918 " # \n"
1919 "# #\n"
1920 "1\n"
1921 "3\n"
1922 "# #\n"
1923 " # \n"
1924 "# #\n"
1925 "3\n"
1926 "4\n"
1927 " OO \n"
1928 "O O\n"
1929 "O O\n"
1930 " OO \n"
1931 "2\n"
1932 "0");
1933 auto out = ostringstream();
1934 main(in, out);
1935 const auto ans = out.str();
1936 ASSERT_EQ("# #\n"
1937 " # \n"
1938 "# #\n"
1939 "# # # # # # # #\n"
1940 " # # # # \n"
1941 "# # # # # # # #\n"
1942 " # # # # \n"
1943 " # # \n"
1944 " # # # # \n"
1945 "# # # # # # # #\n"
1946 " # # # # \n"
1947 "# # # # # # # #\n"
1948 " # # # # \n"
1949 " # # \n"
1950 " # # # # \n"
1951 " # # \n"
1952 " # \n"
1953 " # # \n"
1954 " # # # # \n"
1955 " # # \n"
1956 " # # # # \n"
1957 "# # # # # # # #\n"
1958 " # # # # \n"
1959 "# # # # # # # #\n"
1960 " # # # # \n"
1961 " # # \n"
1962 " # # # # \n"
1963 "# # # # # # # #\n"
1964 " # # # # \n"
1965 "# # # # # # # #\n"
1966 " OO OO \n"
1967 " O OO O \n"
1968 " O OO O \n"
1969 " OO OO \n"
1970 " OO OO \n"
1971 "O O O O\n"
1972 "O O O O\n"
1973 " OO OO \n"
1974 " OO OO \n"
1975 "O O O O\n"
1976 "O O O O\n"
1977 " OO OO \n"
1978 " OO OO \n"
1979 " O OO O \n"
1980 " O OO O \n"
1981 " OO OO \n",
1982 ans);
1983 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().