题意:有一个规模为n*m的剧院,用a*a的地板来铺满,问需要多少块木板。
思路:水题。
1 #include<iostream>
2 #include<cstring>
3 #include<cmath>
4 #include<algorithm>
5 #include<cstdlib>
6 #include<cstdio>
7 #include<vector>
8 #define ll long long
9 using namespace std;
10 int main()
11 {
12 int n,m,a;
13 cin>>n>>m>>a;
14 int x=0,y=0;
15 x=n/a;
16 if(n%a) x++;
17 y=m/a;
18 if(m%a) y++;
19 cout<<(ll)x*y<<endl;
20 return 0;
21 }
1B Spreadsheet
题意:已知有两种形式的表头,给你一种让你转化成另一种。
思路:首先要判断是哪种类型的表头,然后就是26进制转化。
1 #include<iostream>
2 #include<cstring>
3 #include<cmath>
4 #include<algorithm>
5 #include<cstdlib>
6 #include<cstdio>
7 #include<vector>
8 #include<stack>
9 #define ll long long
10 using namespace std;
11 string str;
12 bool check()
13 {
14 if(str[0]!=‘R‘||(str[0]==‘R‘&&!isdigit(str[1]))) return false;
15 bool ok=false;
16 for(int i=1; i<str.size(); ++i)
17 {
18 if((isupper(str[i])&&str[i]!=‘C‘)||str[i-1]==‘C‘&&!isdigit(str[i])) return false;
19 if(str[i-1]==‘C‘&&isdigit(str[i])) ok=true;
20 }
21 return ok;
22 }
23 void show(int p)
24 {
25 stack<int> sk;
26 while(p>0)
27 {
28 p--;
29 sk.push(p%26);
30 p=p/26;
31 }
32 while(!sk.empty())
33 {
34 putchar(sk.top()+‘A‘);
35 sk.pop();
36 }
37 }
38 void show(string s)
39 {
40 int res=0;
41 for(int i=0; i<s.size(); ++i)
42 res=res*26+s[i]-‘A‘+1;
43 cout<<res<<endl;
44 }
45 int main()
46 {
47 int n;
48 cin>>n;
49 while(n--)
50 {
51 cin>>str;
52 if(check())
53 {
54 string a,b;
55 bool ok=false;
56 for(int i=0; i<str.size(); ++i)
57 {
58 if(isdigit(str[i]))
59 {
60 if(!ok)
61 a+=str[i];
62 else
63 b+=str[i];
64 }
65 else
66 {
67 if(!a.empty()) ok=true;
68 }
69 }
70 if(b.empty()) b+=‘0‘;
71 int val=0;
72 for(int i=0; i<b.size(); ++i)
73 val=val*10+b[i]-‘0‘;
74 show(val);
75 cout<<a<<endl;
76 }
77 else
78 {
79 string a,b;
80 for(int i=0; i<str.size(); ++i)
81 if(isdigit(str[i])) b+=str[i];
82 else a+=str[i];
83 cout<<"R"<<b<<"C";
84 show(a);
85 }
86 }
87 return 0;
88 }
codeforce 泛做,码迷,mamicode.com
时间: 2024-10-11 16:56:11