今晚的两道 bc

第一道题  Beautiful Palindrome Number

,简单组合计数问题,手算打表就好~【第一次 提交竟然 wa了一次 有一个小小的坑在那。。。。

 1 /*********************************
 2 Author: jusonalien
 3 Email : [email protected]
 4 school: South China Normal University
 5 Origin:
 6 *********************************/
 7 #include <iostream>
 8 #include <cstdio>
 9 #include <map>
10 #include <cstring>
11 #include <string>
12 #include <set>
13 #include <queue>
14 #include <vector>
15 using namespace std;
16 int ans[7] = {1,9,18,54,90,174,258};
17 int T;
18 int main(){
19     cin>>T;
20     int k;
21     while(T--){
22         cin>>k;
23         printf("%d\n",ans[k]);
24     }
25     return 0;
26 }

第二道题,Operation the Sequence

一开始想到的就是 线段树啥的,尼玛一个人在那想啊想啊,想到蛋碎 都没想到究竟要怎么操作,突然间想到能不能到时反过来 递推过去?这么一想会不会很傻X?会不会T啊?尼玛 连具体方法都没想好,就担心T了,,简直太低能了,后来lpt好像也在做这个比赛,她在Q上吐槽道说她刚去图书馆水过第一题后图书馆就闭馆了,然后我和她讨论了一下第二题,聊着聊着就聊到了递推,然后就她说有个词叫做离线。。。哎原来这就是离线?然后 我就开始写 ,为了能够保证到时能够倒着推过去,就用stack咯,,结果还没写完就out of submit time了,没办法交了,,,rating就这么跑了囧rz

晚上出去散了一下步之后,回来接着写那道题目,第一次t了一次,,原来我天真地用了快速幂,其实不用快速幂更快,然后答案没有设为long long 又wa 了一发,然后 乱搞了几次后就ac了

 1 /*********************************
 2 Author: jusonalien
 3 Email : [email protected]
 4 school: South China Normal University
 5 Origin:
 6 *********************************/
 7 #include <iostream>
 8 #include <cstdio>
 9 #include <map>
10 #include <cstring>
11 #include <string>
12 #include <set>
13 #include <queue>
14 #include <vector>
15 #include <stack>
16 using namespace std;
17 const int MOD = 1e9 + 7;
18 int n,m,pow;
19 stack<int> op;
20 inline int fun_1(int o){
21     if(n&1){//ÆæÊý
22         if(o <= (n+1)/2)
23             return o*2 - 1;
24         else
25             return (o - (n+1)/2)*2;
26     }else{//żÊý
27        if(o <= n/2)
28             return o*2 - 1;
29         else
30             return (o - n/2) * 2;
31     }
32 }
33 inline int fun_2(int o){
34     return n - o + 1;
35 }
36 inline int solve(int o,int q){
37     if(o == 1)
38         return fun_1(q);
39     else
40         return fun_2(q);
41 }
42 int query(int o){
43     stack<int> q = op;
44     while(!q.empty()){
45         o = solve(q.top(),o);
46         q.pop();
47     }
48     long long ans = o;
49     for(int i = 1;i <= pow;++i)
50         ans = (ans*ans)%MOD;
51     return ans;
52 }
53 int T;
54 int main(){
55     n = 5;
56     char ope[3];
57     int ope_;
58     cin>>T;
59     while(T--){
60         pow = 0;
61         while(!op.empty()) op.pop();
62         scanf("%d%d",&n,&m);
63     for(int i = 1;i <= m;++i){
64             scanf("%s %d",ope,&ope_);
65             if(ope[0] == ‘O‘&&ope_ != 3)
66                     op.push(ope_);
67             else if(ope[0] == ‘O‘&&ope_ == 3 )
68                     pow++;
69             else if(ope[0] == ‘Q‘)
70                  cout<<query(ope_)<<endl;
71         }
72     }
73     return 0;
74 }

时间: 2024-10-27 06:24:20

今晚的两道 bc的相关文章

告诉我图样图森破的两道简单C++笔试题

今晚刷了一大堆的笔试题,中规中矩,但是有两道做得很快但是都错了的题目,印象深刻. (要找工作的大四渣有没有共鸣,在学校明明很努力,但是总是跟不上时代,没有厉害的项目,也没有过人的竞赛成绩,内推屡屡失败,前天阿里巴巴在线笔试也被虐死,真心迷惘,唯独刷题搞笔试了.) 第一道题是关于宏定义的. #include<iostream> using namespace std; #define fun(n) (n-1)*n int main() { int x=3; cout<<fun(x+3

ACM/ICPC 之 SPFA范例两道(POJ3268-POJ3259)

两道以SPFA算法求解的最短路问题,比较水,第二题需要掌握如何判断负权值回路. POJ3268-Silver Cow Party //计算正逆最短路径之和的最大值 //Time:32Ms Memory:360K #include<iostream> #include<cstring> #include<cstdio> #include<queue> #include<algorithm> using namespace std; #define

两道有意思的题目

碰到两道有意思的题目,记录一下. 题目一: 问,对于任意一个正整数,是否存在一个它的倍数全是由1和0组成? 例如: 1 * 1 = 1 2 * 5 = 10  (2的5倍是10,10由1和0组成) 3 * 37 = 111 (3 的 37 倍是111,111 全部由1组成) 4 * 25 = 100 (4 的 25 倍是100,100 由1和0组成) 5 * 20 = 100 (5 的 20 倍是100,100由1 和 0 组成) …… 现在需要判断,随便给一个正整数,是否存在一个它的倍数满足题

[sdut]2623+[sdut]2878//四五届省赛中的两道数学期望

两道数学期望的题今天一起总结上来. 1.the number of steps(第四届省赛) 1 #include <iostream> 2 #include <string.h> 3 #include <iomanip> 4 using namespace std; 5 double dp[100][100]; 6 int n; 7 double a,b,c,d,e; 8 9 int main() 10 { 11 while(cin>>n&&

分享两道笔试题目

前几天,给成都的某家公司投了个简历,给发了两道笔试题目,与大家分享一下.附上自己的解题过程,写得不好的地方,还请博友多多指教. 一 .  设计程序输出销售及收费清单 一个电商平台对在其平台之上销售的除了书籍.食品以及药物以外的商品收取 10% 的费用.而对于进口的商品则额外收取 5% 的附加费用.对于平台抽取的费用计算时,舍入的规则是:对于 n% 抽取率,价格为 p的商品, np/100 的值就近舍入到 0.05(如: 7.125 -> 7.15, 6.66 -> 6.70 ). 卖家卖出一些

两道笔试题的感触

今天做了两道笔试题,收益良多.有些题,你会发现,虽然并不难,但是却很容易没有思路或者出错,这都是源自平时的不求甚解.很多知识点,自以为已经掌握,其实只是管中窥豹,可见一斑.不要一味墨守成规,也要用于思考,很多东西既要知其然,也要知其所以然.我一直觉得了解和精通中间差着十万八千里,看来还有很长一段路要走.只有比别人更早.更勤奋地努力,才能尝到更加成功的滋味.哈哈,跑题了. 下面看一下两道笔试题.一.大概简单地说一下,求下面这段代码的结果. new Thread(new Runnable() { p

水了两道括号匹配

POJ 1141 给一段括号序列,要求增加最少的括号,使之合法,输出序列. dp[i][j]表示使给定序列的i到j成为合法序列所需添加的最少括号数,dp[0][length-1]即是答案,转移的话,如果s[i]和s[j]可以匹配那么dp[i][j] = dp[i+1][j-1],否则就考虑在中间选择一个位置m,使分割成的两个序列各自成为合法序列.方案的话就是多开一个数组记录然后递归输出.状态是从长度小的序列转移到长度长的序列,所以两层循环,外层枚举长度,内层枚举头位置即可.写成记忆化搜索简单一点

黑马程序员 &nbsp; 两道java面试题

1.List,Set,Map是否都继承了Collection接口?  List,Map比较常用:List是通过下标来访问元素,Map是通过键值进行访问元素.应该不会同时都实现了Collection接口.  Collection是一个什么概念?还有Set在java中是怎样定义的?他是通过下标来访问元素还是通过键值来访问元素?两者谁继承了Collection接口呢?或者有没有可能两者都继承了Collection接口?时间不多了,我是这样写的:  Set,Map实现了Collection接口.而Lis

两道拓扑排序的问题

多久没写东西了啊.... 两道拓扑排序Liv.1的题....方法是一样的~~ <拓扑排序·二> 题目:http://hihocoder.com/contest/hiho81/problem/1 一个电脑网路,单向边,如果存在边u->v,那么u的病毒会感染到v. 要点,不存在环!那么如果u的入度=0的话,那么u中的病毒数不会再变化. 想到拓扑排序.不断删去入度为0的点.每次删去节点u,如果存在u->v,那么病毒数 num[v] += num[u].问题解决. (用queue实现拓扑排