题目描述:

vjudge

题解:

高消(线性基)模$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的更多相关文章

  1. [001] winnie the pooh - 读后记

    winnie the pooh 我是在伍君仪透析英语视频培训班,获得这本书的,PDF格式的(排版不是很好,和当当上的相比有部分章节缺失) 这是我第一本采用透析法读完的英文书. 今天(2015年10月2 ...

  2. Python自然语言处理学习笔记(69)

    http://www.cnblogs.com/yuxc/archive/2012/02/09/2344474.html Chapter8    Analyzing Sentence Structure ...

  3. Python推荐系统库--Surprise实战

    一.使用movieLens数据集 from surprise import KNNBasic, SVD from surprise import Dataset from surprise impor ...

  4. Python 装饰器入门(上)

    翻译前想说的话: 这是一篇介绍python装饰器的文章,对比之前看到的类似介绍装饰器的文章,个人认为无人可出其右,文章由浅到深,由函数介绍到装饰器的高级应用,每个介绍必有例子说明.文章太长,看完原文后 ...

  5. Hadoop案例(十一)MapReduce的API使用

    一学生成绩---增强版 数据信息 computer,huangxiaoming,,,,,,, computer,xuzheng,,,,, computer,huangbo,,,, english,zh ...

  6. Hadoop学习之路(二十六)MapReduce的API使用(三)

    影评案例 数据及需求 数据格式 movies.dat 3884条数据 1::Toy Story (1995)::Animation|Children's|Comedy 2::Jumanji (1995 ...

  7. Python3中文教程

    搜索 此文档来源自网络 安装 PYTHON❝ Tempora mutantur nos et mutamur in illis. (时光流转,吾等亦随之而变.) ❞ — 古罗马谚语 深入欢迎来到 Py ...

  8. 五、Pandas玩转数据

    Series的简单运算 import numpy as np import pandas as pd s1=pd.Series([1,2,3],index=['A','B','C']) print(s ...

  9. C++学习笔记13-类继承

    1.  类模板的 static 成员[不同于C#中的static] 类模板能够像随意其它类一样声明static 成员.下面代码: template <class T> class Foo ...

随机推荐

  1. idea ultmate版安装后toolWindows没有database

    点击Configure--->plugins将database勾选

  2. 调用webServer

    1,右键引用 2

  3. Codeforces 1139D(推式子+dp)

    题目传送 推公式博客传送 推完式子就是去朴素地求就行了Orz const int maxn = 1e5 + 5; const int mod = 1e9 + 7; int m, mu[maxn], v ...

  4. oracle dual是个什么表

    这几天一直在研究oracle,常常会用到dual这个系统表,dual表到底是一个什么表?带着疑问查了百度了一下,现在总结一下:DUAL是Oracle与数据字典一起自动创建的一个表,它只有一列:DUMM ...

  5. 使用express+mongoDB搭建多人博客 学习(1) 安装blog工程

    一.安装 1.安装express npm install -g expressnpm install -g express-generator 2.用ejs做模板,新建blog工程express -e ...

  6. Redis基础理论

    一.概述 二.数据类型 STRING LIST SET HASH ZSET 三.数据结构 字典 跳跃表 四.使用场景 计数器 缓存 查找表 消息队列 会话缓存 分布式锁实现 其它 五.Redis 与 ...

  7. JavaScript单元测试框架:Jasmine

    摘抄:http://blog.csdn.net/GuoJiangweigege/article/details/52130589 互联网的快速发展,给web开发人员带来了前所未有的挑战.对于前端开发, ...

  8. CF1060D Social Circles

    思路: 贪心.既然每个人的左边是其他人的右边,每个人的右边是其他人的左边,那么使重叠的部分最多即可. 实现: #include <bits/stdc++.h> using namespac ...

  9. POJ 3461 kmp

    Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 40168   Accepted: 16135 Descript ...

  10. DVWA之文件包含(File inclusion)

    daFile inclusion的意思就是文件包含,当服务器开启了allow_url_include选项时,就可以通过PHP的某些特征函数 include,require和include_once,r ...