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 ...
随机推荐
- ReenTrantLock可重入锁和synchronized的区别
ReenTrantLock可重入锁和synchronized的区别 可重入性: 从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入 ...
- css文本之蛇
文本之蛇 css把文本当做一行来处理,把他们放在一个看不见的盒子里面.盒子遇到容器的外边界会折行.所有的文本属性都应用于这个盒子,而不是包含文本的容器. 最有用的8个文本属性 文本缩进(text-in ...
- DBUtils学习一 增删该查
package com.mozq.jdbc.test; import java.sql.SQLException; import java.util.List; import java.util.Ma ...
- php7+新特性
php7已经发布有段时间了,查了下正式版本的发布时间是2015年底,至于具体的新特性,在这里总结一下. 标量类型声明 php7新增了4种类型, 字符串(string), 整数 (int), 浮点数 ( ...
- bzoj1538 [NWERC2017]High Score
网上的题解都很奇怪.. 经过相当长时间的思考,有了一个有效(自认为)的解法 设某一种合法分配方案完成后三个数分别变为a,b,c,其中a>=c,b>=c 此时如果让c减1,让a或b加1(设让 ...
- 551 Student Attendance Record I 学生出勤纪录 I
给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场如果一个学生的出勤纪 ...
- css水平垂直居中块整理
1.绝对定位+负margin 兼容性很好,但需要指定子块的高度和宽度,以及负margin .wp{ position: relative; width: 200px; height: 200px; b ...
- QlikView入门
1.windows x64下载地址: http://d1cf4w4kkla6tb.cloudfront.net/qlikview/11.20/11718/_MSI/QlikViewDesktop_x6 ...
- elasticsearch的模糊查询
https://blog.csdn.net/a772304419/article/details/78951561
- onpageshow 监听页面是否是缓存页面
需求:点击A页面跳转至B页面,在B页面点击手机物理回退键或者history.back回退时,需要在A页面判断当前页面是否是回退回来的页面,而不是新加载的.这里用到一个 onpageshow 事件. 定 ...