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 ...
随机推荐
- Java程序员都应该去使用一下这款强大的国产工具类库
这不是标题党,今天给大家推荐一个很棒的国产工具类库:Hutool.可能有很多朋友已经知道这个类库了,甚至在已经在使用了,如果你还没有使用过,那不妨去尝试一下,我们项目组目前也在用这个.这篇文章来简单介 ...
- VLAN-1-VLAN配置
f0/12和f0/24不在列表中,因为它们动态地成为trunk,支持多个vlan “unsup”意为这个2950交换机不支持FDDI和TR 首先 switchport mode ...
- vue教程1-初体验
起步 var vm = new Vue({ // 选项 }) #每个Vue应用都需要通过实例化Vue来实现,语法格式继承原生js <!DOCTYPE html> <html lang ...
- mysql状态查询
在监控中,都是去探测这些状态数据,然后换算到时间刻度上,像zabbix. show status like 'uptime'; --查看select语句的执行数 show [global] statu ...
- 使用PHP操作SQL 完成简单的CURD操作
1.从数据库出发,先建立测试数据,这里使用的MYSQL,通过脚本模式创建测试数据. SET NAMES UTF8; DROP DATABASE IF EXISTS disk; CREATE DATAB ...
- bzoj 4695: 最假女选手 && Gorgeous Sequence HDU - 5306 && (bzoj5312 冒险 || 小B的序列) && bzoj4355: Play with sequence
算导: 核算法 给每种操作一个摊还代价(是手工定义的),给数据结构中某些东西一个“信用”值(不是手动定义的,是被动产生的),摊还代价等于实际代价+信用变化量. 当实际代价小于摊还代价时,增加等于差额的 ...
- Rabbitmq~linux环境的部署
之前写过在windows环境上部署rabbitmq,这回介绍在centos上对这个消息中间件进行部署的过程 一 下载和解压 wget http://www.rabbitmq.com/releases ...
- ubuntu下lnmp添加虚拟目录没有权限
lnmp.org下载的lnmp集成环境,通过lnmp vhost tsp创建了虚拟主机目录,将此目录导入到phpstorm中时提示错误,应该时权限的问题,想通过chmod -R 777 tsp来改变t ...
- jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法
jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...
- greendao 查询之数据去重
最近使用greendao的过程中,有一个需求:将数据库的内容根据组别展示.意思就是需要将数据库中的所有组别取出来,然后根据组别加载数据.之前我的笨办法是获取所有的数据,然后对得到的数据手动去重(比较每 ...