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 ...
随机推荐
- iOS 利用模态视图实现带黑色蒙版的底部弹窗
本demo仅适用于iOS8及以上系统. 本文将使用autolayout+storyboard来实现弹窗 第一步.storyboard创建界面 1.打开storyboard 拖一个UIViewcontr ...
- python开篇随记
脚本环境,解释器处理 #!/usr/bin/env python # -*- coding:utf-8 -*- 变量 ■ 变量名只能由字母.数字和下划线组合 ■ 变量名不能以数字开头 ■ 关键字不能自 ...
- 086 Partition List 分隔链表
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前.你应当保留两个分区中每个节点的初始相对位置.例如,给定1->4->3->2-&g ...
- 112 Path Sum 路径总和
给定一棵二叉树和一个总和,确定该树中是否存在根到叶的路径,这条路径的所有值相加等于给定的总和.例如:给定下面的二叉树和 总和 = 22, 5 / \ ...
- [已读]CSS禅意花园
蛮早的一本书,提到了一些小tip,比如负margin实现居中.FIR图像替换.
- ECSHOP商品属性调用到任意页面方法
看到标题有的人觉得这个很复杂,其实这个没那么复杂,直接用下面的方法,就可以在ECSHOP的任意页面调用商品属性. 一)打开includes\lib_insert.php文件,在最后面增加一个函数: f ...
- mongodb 上限集合
上限集合是固定大小的循环集合按照插入以支持高性能的创建,读取和删除操作.通过循环,这意味着,当分配给该集合中的固定大小要用尽时,它会开始删除集合中最旧的文件而不提供任何明确的命令. 上限集合限制更新, ...
- option标签selected="selected"属性失效的问题
要在select标签上面加上autocomplete="off"关闭自动完成,不然浏览器每次刷新后将自动选择上一次关闭时的option,这样默认属性selected="s ...
- 查找算法(顺序查找、二分法查找、二叉树查找、hash查找)
查找功能是数据处理的一个基本功能.数据查找并不复杂,但是如何实现数据又快又好地查找呢?前人在实践中积累的一些方法,值得我们好好学些一下.我们假定查找的数据唯一存在,数组中没有重复的数据存在. (1)顺 ...
- ListView与ScrollView冲突的4种解决方案
问题解决方案1.手动设置ListView高度 经过测试发现,在xml中直接指定ListView的高度,是可以解决这个问题的,但是ListView中的数据是可变的,实际高度还需要实际测量.于是手动 ...