1.题目描写叙述:点击打开链接

2.解题思路:本题利用差分序列的性质解决。将1,2,..,k+1都带入表达式计算,假设对全部的i。都有D整除P(i),那么该序列全部值都为整数,否则不都为整数。

由于假设某一项不能整除。那么d^kP(i)就不是整数,因此不总是整数。

只是本题的一个难点在于怎样解析表达式,能够发现。多项式的构成都符合an^k的形式。因此能够对第i项。找到它的系数a[i]和指数p[i],从而成功解析整个表达式。

详细实现细节见代码。

3.代码:

//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<algorithm>
#include<cassert>
#include<string>
#include<sstream>
#include<set>
#include<bitset>
#include<vector>
#include<stack>
#include<map>
#include<queue>
#include<deque>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<ctime>
#include<cctype>
#include<functional>
using namespace std; #define me(s) memset(s,0,sizeof(s))
#define rep(i,n) for(int i=0;i<(n);i++)
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair <int, int> P; struct Polynomial
{
vector<int>a,p;
void parse_polynomial(string expr)
{
int i=0,len=expr.length();
while(i<len)
{
int sign=1;
if(expr[i]=='+')i++;
if(expr[i]=='-'){sign=-1;i++;}
int v=0;
while(i<len&&isdigit(expr[i]))v=v*10+expr[i++]-'0';//获得完整的系数
if(i==len){a.push_back(v);p.push_back(0);}//常数项
else
{
assert(expr[i]=='n');
if(v==0)v=1; //假设第一项没有系数,那么当做1
v*=sign;
if(expr[++i]=='^')//有指数
{
a.push_back(v);
v=0;
i++;
while(i<len&&isdigit(expr[i]))v=v*10+expr[i++]-'0';
p.push_back(v);
}
else //没有指数。默认指数是1
{
a.push_back(v);
p.push_back(1);
}
}
}
} int mod(int x,int MOD)
{
int n=a.size();
int ans=0;
for(int i=0;i<n;i++)
{
int m=a[i];
for(int j=0;j<p[i];j++)
m=(ll)m*x%MOD; //注意:乘法可能会溢出
ans=((ll)ans+m)%MOD; //加法也可能会溢出
}
return ans;
}
}; bool check(string expr)
{
int p=expr.find('/');
Polynomial poly;
poly.parse_polynomial(expr.substr(1,p-2));
int D=atoi(expr.substr(p+1).c_str());
for(int i=1;i<=poly.p[0]+1;i++)
if(poly.mod(i,D)!=0)return false;
return true;
} int main()
{
int kase=1;
string expr;
while(cin>>expr)
{
if(expr[0]=='.')break;
printf("Case %d: ",kase++);
if(check(expr))puts("Always an integer");
else puts("Not always an integer");
}
}

例题2.8 总是整数 LA4119的更多相关文章

  1. java例题_32 取一个整数a从右端开始的4~7位

    1 /*32 [程序 32 左移右移] 2 题目:取一个整数 a 从右端开始的 4-7 位. 3 */ 4 5 /*分析 6 * 从右端开始的第四位相当于原数除以1000后结果的最后一位数, 7 * ...

  2. Shell符号展开

    字符 展开 * 这个 “*” 字符意味着匹配文件名中的任意字符 shell 把 “*” 展开成了另外的东西 ,在 echo 命令被执行前. ~家目录 算术表达式展开 算术表达式展开使用这种格式: $( ...

  3. c#循环

    循环:反复执行某段代码.    循环四要素:初始条件,循环条件,循环体,状态改变.    for(初始条件;循环条件;状态改变)    {      循环体    }  break ——中断循环,跳出 ...

  4. 从 shell 眼中看世界

    (字符) 展开每一次你输入一个命令,然后按下 enter 键,在 bash 执行你的命令之前, bash 会对输入的字符完成几个步骤处理.我们已经知道两三个案例,怎样一个简单的字符序列,例如 “*”, ...

  5. CH0601 Genius ACM【倍增】【归并排序】

    0601 Genius ACM 0x00「基本算法」例题 描述 给定一个整数 M,对于任意一个整数集合 S,定义“校验值”如下: 从集合 S 中取出 M 对数(即 2∗M 个数,不能重复使用集合中的数 ...

  6. php代码审计整理

    目录 变量覆盖 1x01.extract 变量覆盖 定义和用法 语法 漏洞产生:使用了默认设置 攻击方法:制造变量名冲突,对于需要相等的值可以同时置空 修复:设定一个冲突时的处理规则 例题: 1x02 ...

  7. 【例题收藏】◇例题·III◇ 木と整数 / Integers on a Tree

    ◇例题·III◇ 木と整数 / Integers on a Tree 只需要一个美妙的转换,这道题就会变得无比美妙…… 来源:+AtCoder 2148(ARC-063 E)+ ◆ 题目大意 给定一棵 ...

  8. 整数划分——真正的递归经典例题(NYOJ——90)

    先注明学习博客的地址:(http://www.cnblogs.com/hoodlum1980/archive/2008/10/11/1308493.html) 题目描述:任何正整数n都可以写成n=n1 ...

  9. STL模板中的map的使用与例题

    最近的计分赛,记得自己的都只是过了两题.遇到了两次map,自己在寒假看了一点的map,只知道在字符串匹配的时候可以用的到.但是自己对map的使用还是不够熟练使用,这回在第一次和第二次的计分赛中都遇到可 ...

随机推荐

  1. [javaEE] Eclipse 默认设置的换行长度

    eclipse 默认设置的换行长度, 格式化代码后,经常换行,非常难看. 1.Java代码 打开Eclipse的Window菜单,然后 Preferences->Java->Code St ...

  2. springboot整合ActiveMQ 2(主备模式,负载均衡)

    基本使用,https://www.tapme.top/blog/detail/2018-09-05-10-38 主备模式,https://www.tapme.top/blog/detail/2018- ...

  3. anaconda 使用 及 tensorflow-gpu 安装

    Anaconda简易使用 创建新环境 conda create -n rcnn python=3.6 删除环境 conda remove -n rcnn --all 进入环境 conda activa ...

  4. PyQt5信号-槽机制

    signal -> emit -> slot signal.connect(slot) signal.disconnect(slot) 信号 (singal) 可以连接无数多个槽 (slo ...

  5. 前端之HEML

    HTML介绍 Web服务本质   import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen ...

  6. 试图ddms 如果丢失adv链接解决办法!

    点击如下图菜单 重启链接adv即可显示.

  7. BZOJ1060: [ZJOI2007]时态同步(树形dp 贪心)

    Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3285  Solved: 1286[Submit][Status][Discuss] Descript ...

  8. wp8路线跟踪应用源码详细说明

    目录 介绍 应用程序界面 定时执行 定位追踪 设置地图Pitch和Heading属性 后台位置追踪 Live Tile 总结 介绍 我从Windows Phone7 还在测试阶段的时候就开始开发了,所 ...

  9. 使用QT创建PythonGUI程序

    1. 挑选 GUI设计程序: wxPython Vs. pyQt4 参考链接:http://www.douban.com/group/topic/14590751/ (1):wxWidgets wxP ...

  10. spring的HandlerMapping

    handerlMapping意思是处理器映射,是把请求的url地址与方法进行映射,如SimpleUrlHandlerMapping.