URAL1561 Winnie the Pooh
题目描述:
题解:
高消(线性基)模$7$。
可以算是板子了。
具体见代码:
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- using namespace std;
- const int N = ;
- const int MOD = ;
- template<typename T>
- inline void read(T&x)
- {
- T f = ,c = ;char ch=getchar();
- while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
- while(ch>=''&&ch<=''){c=c*+ch-'';ch=getchar();}
- x = f*c;
- }
- int n,m;
- char op[],s0[];
- int gtdt()
- {
- scanf("%s",s0+);
- if(s0[]=='S'&&s0[]=='u')return ;
- if(s0[]=='M')return ;
- if(s0[]=='T'&&s0[]=='u')return ;
- if(s0[]=='W')return ;
- if(s0[]=='T'&&s0[]=='h')return ;
- if(s0[]=='F')return ;
- if(s0[]=='S'&&s0[]=='a')return ;
- return -;
- }
- void print(int x)
- {
- if(x==)puts("Sunday");
- if(x==)puts("Monday");
- if(x==)puts("Tuesday");
- if(x==)puts("Wednesday");
- if(x==)puts("Thursday");
- if(x==)puts("Friday");
- if(x==)puts("Saturday");
- }
- int Inv[]={,,,,,,};
- struct Vec
- {
- int a[N];
- void rd(){for(int i=;i<=m;i++)read(a[i]),a[i]%=MOD;}
- }v0;
- bool fg=;
- struct lb
- {
- Vec v[N];int vl[N];
- bool check(Vec x)
- {
- for(int i=;i<=m;i++)if(x.a[i])
- {
- if(!v[i].a[i])return ;
- for(int j=i,now=Inv[x.a[i]];j<=m;j++)x.a[j]=x.a[j]*now%MOD;
- for(int j=i;j<=m;j++)x.a[j]=(x.a[j]-v[i].a[j]+MOD)%MOD;
- }
- return ;
- }
- int query(Vec x)
- {
- int r1 = ,r2 = ,r = ;
- for(int i=;i<=m;i++)if(x.a[i])
- {
- if(!v[i].a[i])return -;
- r=x.a[i];r2=r2*r%MOD,r1=r1*Inv[r]%MOD;
- for(int j=i,now=Inv[x.a[i]];j<=m;j++)x.a[j]=x.a[j]*now%MOD;
- r1=(r1+vl[i])%MOD;
- for(int j=i;j<=m;j++)x.a[j]=(x.a[j]-v[i].a[j]+MOD)%MOD;
- }
- return r1*r2%MOD;
- }
- void push(Vec x,int vl0)
- {
- for(int i=;i<=m;i++)if(x.a[i])
- {
- vl0=vl0*Inv[x.a[i]]%MOD;
- for(int j=i,now=Inv[x.a[i]];j<=m;j++)x.a[j]=x.a[j]*now%MOD;
- if(!v[i].a[i]){v[i]=x,vl[i]=vl0;break;}
- vl0=(vl0-vl[i]+MOD)%MOD;
- for(int j=i;j<=m;j++)x.a[j]=(x.a[j]+MOD-v[i].a[j])%MOD;
- }
- }
- }tr;
- int main()
- {
- // freopen("s.in","r",stdin);
- // freopen("s.out","w",stdout);
- read(n);
- for(int i=,w;i<=n;i++)
- {
- scanf("%s",op+);
- if(op[]=='A')m++;
- else if(op[]=='L')
- {
- v0.rd();w=(MOD-gtdt()+gtdt())%MOD;
- if(!tr.check(v0))
- {
- if(tr.query(v0)!=w)fg=;
- }else tr.push(v0,w);
- }else
- {
- v0.rd();w=gtdt();
- if(fg)puts("Already crazy");
- else if(tr.check(v0))puts("Don't know");
- else print((w+tr.query(v0))%MOD);
- }
- }
- return ;
- }
URAL1561 Winnie the Pooh的更多相关文章
- [001] winnie the pooh - 读后记
winnie the pooh 我是在伍君仪透析英语视频培训班,获得这本书的,PDF格式的(排版不是很好,和当当上的相比有部分章节缺失) 这是我第一本采用透析法读完的英文书. 今天(2015年10月2 ...
- Python自然语言处理学习笔记(69)
http://www.cnblogs.com/yuxc/archive/2012/02/09/2344474.html Chapter8 Analyzing Sentence Structure ...
- Python推荐系统库--Surprise实战
一.使用movieLens数据集 from surprise import KNNBasic, SVD from surprise import Dataset from surprise impor ...
- Python 装饰器入门(上)
翻译前想说的话: 这是一篇介绍python装饰器的文章,对比之前看到的类似介绍装饰器的文章,个人认为无人可出其右,文章由浅到深,由函数介绍到装饰器的高级应用,每个介绍必有例子说明.文章太长,看完原文后 ...
- Hadoop案例(十一)MapReduce的API使用
一学生成绩---增强版 数据信息 computer,huangxiaoming,,,,,,, computer,xuzheng,,,,, computer,huangbo,,,, english,zh ...
- Hadoop学习之路(二十六)MapReduce的API使用(三)
影评案例 数据及需求 数据格式 movies.dat 3884条数据 1::Toy Story (1995)::Animation|Children's|Comedy 2::Jumanji (1995 ...
- Python3中文教程
搜索 此文档来源自网络 安装 PYTHON❝ Tempora mutantur nos et mutamur in illis. (时光流转,吾等亦随之而变.) ❞ — 古罗马谚语 深入欢迎来到 Py ...
- 五、Pandas玩转数据
Series的简单运算 import numpy as np import pandas as pd s1=pd.Series([1,2,3],index=['A','B','C']) print(s ...
- C++学习笔记13-类继承
1. 类模板的 static 成员[不同于C#中的static] 类模板能够像随意其它类一样声明static 成员.下面代码: template <class T> class Foo ...
随机推荐
- 浅谈volatile关键字
volatile是一种轻量级的同步机制.它可以保证内存可见性以及防止指令重排序,但是不保证原子性 volatile和JMM机制是不可分割的,在谈volatile的时候有必要先了解以下JMM JMM(J ...
- ZK的选举算法
一.前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举. 二.Leader选举 2.1 Leader选举概 ...
- android 一些常用权限
<!-- 网络访问权限 --> <uses-permission android:name="android.permission.INTERNET" /> ...
- Python开发 第02课 Python 数据类型
1.Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中.因此,变量可以指定不同的数据 ...
- 03.Javascript——入门一些方法记录之Map和Set
JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对. 但是JavaScript的对象有个小问题,就是键必须是字符串.但实际上Number ...
- Nginx 配置https 开启ssl 同时支持http
server { listen ; listen 443 ssl; server_name default; index index.html index.php; root /www/html; a ...
- STL使用迭代器逆向删除
网上有很多这种例子: void erase(vector<int> &v) { for(vector<int>::reverse_iterator ri=v.rbegi ...
- WebService学习之旅(四)Apache Axis2的安装
一.Axis2简介 Axis2是目前使用较多的WebService引擎,它是Axis1.x的升级版本,不仅支持SOAP1.1和SOAP1.2,而且也提供了对REST风格WebService的支持. A ...
- codevs 1267 老鼠的旅行 2012年CCC加拿大高中生信息学奥赛
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description You are a mouse that lives in a cage in ...
- vertx从入门到精通
1.Vert.x安装指南 http://blog.csdn.net/sdyy321/article/details/38926005 http://blog.csdn.net/chszs/articl ...