题目描述:
从前有一个王国,皇后怀孕了。她祈祷到:如果我的孩子是儿子,我希望他是一个健康的国王。 9 个月后,她的孩子出生了,的确,她生了一个漂亮的儿子。但不幸的是,正如皇室家庭经常发生的那样,皇后的儿子智力迟钝。经过多年的学习后,他只能做整数的加法,以及比较加法的结果比给定的一个整数是大还是小。另外,用来求和的数必须排列成一个序列,他只能对序列中连续的整数进行求和。老国王对他的儿子非常不满意。但他决定为他的儿子准备一切,使得在他去世后,他的儿子
还能统治王国。考虑到他儿子的能力,他规定国王需要决断的所有问题必须表示成有限的整数序列,并且国王需要决断的问题只是判断这个序列的和与给定的一个约束的大小关系。作了这样的规定,至少还有一些希望:他的儿子能做出一些决策。老国王去世后,新国王开始统治王国。但很快,人们开始不满意他的决策,决定废除他。人们试图通过证明新国王的决策是错误的,从而名正言顺地废除新国王。因此,试图篡位的人们给新国王出了一些题目,让国王做出决策。问题是从序列 S = {a1, a2, ...,an}中取出一个子序列 Si = {aSi, aSi+1, ..., aSi+ni}。国王有一分钟的思考时间, 然后必须做出判断:他对每个子序列 Si 中的整数进行求和,即 aSi + aSi+1 + ... + aSi+ni,然后对每个子序列的和设定一个约束 ki,即 aSi + aSi+1 + ... + aSi+ni < ki,或 aSi + aSi+1 + ... + aSi+ni > ki。过了一会,他意识到他的判断是错误的。他不能取消他设定的约束,但他努力挽救自己:通过伪造篡位者给他的整数序列。他命令他的幕僚找出这样的一个序列 S,满足他设定的这些约束。请帮助幕僚,编写程序,判断这样的序列是否存在。
输入描述:
输入文件中包含多块输入。除最后一块输入外,每块输入对应一组问题及国王的决策。每块输入的第 1 行为两个整数: n 和 m,其中 0<n≤100 表示序列 S 的长度, 0<m≤100 为子序列 Si的个数。接下来有 m 行为国王的决策,每个决策的格式为: si, ni, oi, ki,其中 oi 代表关系运算符">"(用"gt"表示)、或"<"(用"lt"表示), si、 ni 和 ki 的含义如题目描述中所述。最后一块输入只有一行,为 0,表示输入结束。
输出描述:
对输入文件中的每块输入,输出占一行字符串:当满足约束的序列 S 不存在时,输出"successful conspiracy";否则输出"lamentable kingdom"。对最后一块输入,没有输出内容。
样例输入: 
4 2
1 2 gt 0
2 2 lt 2

1 2
1 0 gt 0
1 0 lt 0
0

样例输出:
lamentable kingdom
successful conspiracy

______________________________________________________

又是一道差分约束,大同小异,唯一与前面不同之处在于需要给他认为提供一个源点,从而计算其他点的最短距离,判断是否会有负环。

_______________________________________________________

 #include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
#include<algorithm> using namespace std;
const int maxm=;
int n,m;
struct edge
{
int u,v,w,next;
}e[maxm];
int head[],js;
void init()
{
memset(head,,sizeof(head));
js=;
}
void addage(int u,int v,int w)
{
e[++js].u=u;e[js].v=v;e[js].w=w;
e[js].next=head[u];head[u]=js;
}
queue<int>q;
int dis[];
bool inq[];
int inqt[];
bool spfa()
{
memset(inq,,sizeof(inq));
memset(inqt,,sizeof(inqt));
memset(dis,0x7f,sizeof(dis));
dis[]=;
inq[]=;
inqt[]=;
q.push();
while(!q.empty())
{
int u=q.front();
q.pop();
inq[u]=;
for(int i=head[u];i;i=e[i].next)
{
int v=e[i].v;
if(dis[v]>dis[u]+e[i].w)
{
dis[v]=dis[u]+e[i].w;
if(!inq[v])
{
q.push(v);
inq[v]=;
inqt[v]++;
if(inqt[v]>)
return ;
}
}
}
}
return ;
}
int main()
{
while(scanf("%d%d",&n,&m)==)
{
init();
int si,ni,ki;
char oi[];
for(int i=;i<m;i++)
{
scanf("%d%d%s%d",&si,&ni,oi,&ki);
if(oi[]=='g')
{
addage(si+ni,si-,-ki-);
addage(,si+ni,);
addage(,si-,);
}
else
{
addage(si-,si+ni,ki-);
addage(,si+ni,);
addage(,si-,);
}
}
if(spfa())printf("lamentable kingdom\n");
else printf("successful conspiracy\n");
}
return ;
}

zoj1260 king的更多相关文章

  1. ZOJ1260/POJ1364国王(King)

    // 题意 问是否存在一个长度为n的序列// 这个序列满足m个限制// 每个限制有 si ni oi kisi 为序列位置 ni为从si开始连续长度为ni+1 的子序列 这些子序列和 大于或小于 ki ...

  2. BZOJ 1087: [SCOI2005]互不侵犯King [状压DP]

    1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3336  Solved: 1936[Submit][ ...

  3. [bzoj1087][scoi2005]互不侵犯king

    题目大意 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上 左下右上右下八个方向上附近的各一个格子,共8个格子. 思路 首先,搜索可以放弃,因为这是一 ...

  4. King's Quest —— POJ1904(ZOJ2470)Tarjan缩点

    King's Quest Time Limit: 15000MS Memory Limit: 65536K Case Time Limit: 2000MS Description Once upon ...

  5. 【状压DP】bzoj1087 互不侵犯king

    一.题目 Description 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上.下.左.右,以及左上.左下.右上.右下八个方向上附近的各一个格子,共8个格子. I ...

  6. ZOJ 2334 Monkey King

    并查集+左偏树.....合并的时候用左偏树,合并结束后吧父结点全部定成树的根节点,保证任意两个猴子都可以通过Find找到最厉害的猴子                       Monkey King ...

  7. ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 K. King’s Rout

    K. King's Rout time limit per test 4 seconds memory limit per test 512 megabytes input standard inpu ...

  8. BZOJ-1087 互不侵犯King 状压DP+DFS预处理

    1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2337 Solved: 1366 [Submit][ ...

  9. POJ1364 King

    Description Once, in one kingdom, there was a queen and that queen was expecting a baby. The queen p ...

随机推荐

  1. mac 下更新 .bash_profile 文件

    1.打开terminal(终端) 2.cd ~ ( 进入当前用户的home目录) 3.open .bash_profile (打开.bash_profile文件,如果文件不存在就  创建文件:touc ...

  2. mysql系统库INFORMATION_SCHEMA,MySQL,TEST,mysql系统表的作用

    本文简要说明了MySQL数据库安装好后自带的INFORMATION_SCHEMA,MySQL,TEST三个数据库的用途. 第一个数据库INFORMATION_SCHEMA: 提供了访问数据库元数据的方 ...

  3. 清华申请退学博士作品:完全用Linux工作

    http://www.cnblogs.com/cbscan/articles/3252872.html 下文地址 http://blog.oldboyedu.com/use-linux/ 按: 尽管我 ...

  4. 全景视频外包团队:技术分享Unity3D全景漫游

    作者:未知 1.建模中使用的图片.文件.文件夹等以及模型中物体.材质等的名称都不能使用中文或者特殊符号,可以使用英文字母.数字.下划线等 2.调整Max的单位为米 3.烘培光影的设置 4.模型的中的植 ...

  5. python---字符编码

    获取系统默认字符编码 在Python代码中,普通字符串的编码方式与程序源文件编码方式一致的,而很多IDE在默认情况下,将程序源文件按照系统默认字符编码来保存的. 下面给出用Python获取系统默认编码 ...

  6. 黄聪:Wordpress二级域名共享用户cookie出现错误解决方案及WP的Cookie机制

    在若干年以前,我刚开始折腾Wordpress没多久的时候,就自己摸索过 多个Wordpress网站共享一份数据表的实现方法 .这种看起来好像很高大上的类SSO功能,能够给用户在多个网站之间提供快速.无 ...

  7. 封装实现一个自己的tabbar

    实现效果:

  8. PCL还是SAP?

    When you first created the Hello solution in Visual Studio, you had a choice of two application temp ...

  9. Bootstrap for MVC:Html.Bootstrap().TextBoxFor(model=>model.Name)

    在上篇博文中提到最近比较忙,也打过招呼Orchard系列文章更新速度可能会放缓,但还是会继续写下去,主要原因在最近想着开发一个新的东西(系统?组件?),等有一定成果时会跟大家分享一些相关的东西,今天介 ...

  10. Vs程序自动获取windows7/vista系统管理员权限

    1.在工程中加入MANIFEST资源(C#) 打开VS2005.VS2008.VS2010工程,查看在Properties下是否有app.manifest这个文件:如没有,按如下方式创建:鼠标右击工程 ...