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 ...
随机推荐
- redis-分布式锁2
https://wudashan.cn/2017/10/23/Redis-Distributed-Lock-Implement/ 站在巨人的肩膀上 本博客使用第三方开源组件Jedis实现Redis客户 ...
- react-native-wechat微信组件的使用
对我来说link没有成功过,所以参考了其他人的文章,原文:https://www.jianshu.com/p/6a792118fae4 第一步:要去:https://open.weixin.qq.co ...
- Git - .gitignore文件的用法
.gitignore文件的作用 .gitignore文件用来忽略被指定的文件或文件夹的改动,被记录在.gitignore文件里的文件或文件夹,是无法被git跟踪到的,换句话说,被忽略的文件是不会被放入 ...
- 1-zookeeper基本原理和使用
1 分布式应用 1.1 分布式系统原理 在一个网络中,每台服务器上各跑一个应用,然后彼此连接起来就组成一套系统.比如提供完成的游戏服务,需要有认证应用,道具应用,积分应用,游戏主应用等,应用并非跑在一 ...
- 8. 字符串转换整数 (atoi)
8. 字符串转换整数 (atoi) 方法一 import re import math class Solution(object): def myAtoi(self, str): "&qu ...
- HDU6441(费马大定理)
听队友说过结论:a^n + b^n = c^n在n > 2时无解. 勾股那里本菜数学不好直接暴举了Orz. 跟大家学一波勾股数的构造:a是奇数时,tmp = a / 2; b = (tmp + ...
- morphia(3)-查询
1.查询所有 @Test public void query() throws Exception { final Query<Employee> query = datastore.cr ...
- cmder安装
官网地址:http://gooseberrycreative.com/cmder/ 一款非常漂亮好用的cmd工具. 在github或者官网下载后解压,点击Cmder.exe即可启动. 32位系统会遇到 ...
- DDX和DDV——控件与变量之间值的传递
DoDataExchange由框架调用,作用是交互并且验证对话框数据,主要由(DDX) 和 (DDV)宏实现. 永远不要直接调用这个函数,而是通过UpdateData(TRUE/FALSE)实现控件与 ...
- MQTT进阶篇
我们介绍了最流行的物联网协议MQTT的背景以及基本使用方法.在这篇文章中,我们会继续考察MQTT的高级玩法——与网页应用的交互.MQTT是基于TCP协议实现,基于HTTP的网页应用便无 ...