我接受了以下练习:
给定多项式P和实数序列x 1,...,x n,找到可以计算形式S(i,j)= P(0)x i + P(1)x i + 1的表达式的数据结构D. + ... + P(j - i - 1)x j - 1在恒定时间内对x 1,...,x n进行一些预处理.
我一直试图解决它已经有一段时间了,并没有取得多大成功.一个显而易见的解决方案需要为O(n 2)预处理时间:每Ĵ在1 ... N,我可以计算P(j)的=α 0 + JA 1 + J 2一个2 + ... + J 米一米在O(mn)时间.然后,我可以计算任何S(i,j)的前缀和,其中对于每个不同的i,在O(n)时间中j> i,从而完全在O(n 2 …
我正在制作一个输出PDF文档的程序.给定一系列UTF-8编码字符和用于呈现它的字体名称,我想显示构成文档实际内容的相应字形.我希望能够显示国家字符,如č或ö.支持诸如ae或ffi之类的连接将会很棒.
问题是,我不知道如何指定要显示的实际字形(例如,在内容流中).
例如,如果我想显示字符串"Hello World",我不必担心编码,我只是写(Hello World)Tj.然后,PDF阅读器将使用适当的字体来呈现此字符串.
但是,如果我想显示字符串 ,那么整天都难以阅读PDF规范.Prostědočistanemožné! 使用连字符ffi,fi和ea以及给定字体中的捷克国家符号" ě,č"和" é",我将如何处理?
我试图通过PDF规范,但这并不容易.
非常感谢帮助.
编辑:我可能高估了这个问题.计算显示"普通欧洲文档"所需的字形,我想不出这个数字如何超过256的方式.如果我的假设是正确的,我可以完全重新映射字体的编码.这应该足以涵盖拉丁字母的所有常见符号,数字,标点符号,常见符号等(,[并且仍然有足够的空间用于国家符号,连字和高质量排版的其他元素.(如果字形总数超过256,我可以实现优先级队列来选择最常用的连字.)
话虽这么说,我认为我不需要使用CID键控字体.
我仍然徘徊如何将UTF-8编码的字符映射到任意字体的字形上.我有可用的字体AFM.例如,对于DejaVu字体,字符信息如下所示:
C 63 ; WX 536 ; N question ; B 67 -15 488 743 ;
C 64 ; WX 1000 ; N at ; B 65 -174 930 705 ;
C 65 ; WX …Run Code Online (Sandbox Code Playgroud) 假设我将C结构定义为
struct data {
/* some memebers */
int flag_a:1;
int flag_b:1;
int flag_c:1;
/* some other members */
}
Run Code Online (Sandbox Code Playgroud)
有没有办法利用在内存中表示为单个int的位域,并将条件写s.flag_a | s.flag_b | s.flag_c为更简单的表达式,如s.flags?
或者像GCC这样的智能编译器是否能够实际推断它?
编辑:为了让自己绝对清楚:我正在寻找一种可移植的方法来测试所有正在设置的标志,而无需单独显式地测试每个标志.
我发现自己陷入了绝望的境地,试图理解下面的算法.有谁认出来了吗?
它来自反编译的程序集.我正在编写一个PHP网站前端应用程序,需要使用这段可怕代码生成的密码作为登录凭据.
public static void Crypt(string ThisCle, string Buffer, long BufferLength)
{
int index = 1;
do
{
WUC.cry[index] = char.MinValue;
checked { ++index; }
}
while (index <= 32000);
WUC.cle = Conversions.ToCharArrayRankOne(ThisCle);
WUC.si = 0;
WUC.x1a2 = 0;
WUC.i = 0;
WUC.j = 0;
WUC.l = 0;
while ((long) WUC.j <= checked (BufferLength - 1L))
{
byte num1 = checked ((byte) Strings.Asc(Strings.Mid(Buffer, WUC.j + 1, 1)));
WUC.Assemble();
WUC.cfc = WUC.inter >> 8;
WUC.cfd = WUC.inter & (int) byte.MaxValue;
WUC.compte …Run Code Online (Sandbox Code Playgroud) 我的Prolog解释器分配中有一个Haskell函数
renames :: Rule -> State ExecState [(Term, Term)]
Run Code Online (Sandbox Code Playgroud)
它产生(几乎)Prolog规则中的变量替换(以便变量名称在统一期间不会发生冲突).
由此函数生成的对具有形式(Variable "X", Variable "X_11"),这意味着变量X应该重命名为X_11等(重命名的计数器包含在其中ExecState).
问题是我已经定义了替换
type Subst = Maybe [(Term, Term)]
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为有时无法找到统一两个术语的替代品.(但总是找到重命名变量的替代.)
我试过了
renames' :: Rule -> State ExecState Subst
renames' rule = Just $ renames rule
Run Code Online (Sandbox Code Playgroud)
但这显然不会起作用,因为我包装了State而Just不是计算结果.
如何将实际[(Term, Term)]结果包装在Just?我有什么名字要做吗?
谢谢!